UVALive - 4255 - Guess (拓扑排序)
2024-10-19 17:10:51
Guess
题目传送:Guess
白书例题
注意拓扑排序时,,入度同一时候为0的前缀和须要赋值为同一个数(这个数能够随机取。由于前缀和是累加的,每个a的数值都仅仅和前缀和之差有关)。,由于此时能够看成他们的前缀和是相等的,不存在大小关系,,而存在大小关系的都连了一条有向边。
。假设此时不赋值为同一个数,,可能对于符号0不是正解。,从而产生错误的结果。。
AC代码:
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <complex>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <sstream>
#include <utility>
#include <iostream>
#include <algorithm>
#include <functional>
#define LL long long
#define INF 0x7fffffff
using namespace std;
int n;
char str[1005];
int indeg[35];
int vis[35];
int mp[35][35];
int prefix[35];
void toposort() {
int d = 0, c = 0;
while(d <= n) {
memset(vis, 0, sizeof(vis));
for(int i = 0; i <= n; i ++) {
if(indeg[i] == 0) {
prefix[i] = c;
indeg[i] = -1;
vis[i] = 1;
d ++;
}
}
c ++;
for(int i = 0; i <= n; i ++) {
if(vis[i]) {
for(int j = 0; j <= n; j ++) {
if(mp[i][j] == 1) {
indeg[j] --;
}
}
}
}
}
}
int main() {
int T;
scanf("%d", &T);
while(T --) {
scanf("%d", &n);
scanf("%s", str);
memset(indeg, 0, sizeof(indeg));
memset(mp, 0, sizeof(mp));
int c = 0;
for(int i = 1; i <= n; i ++) {
for(int j = i; j <= n; j ++) {
if(str[c] == '+') {
mp[i - 1][j] = 1;
indeg[j] ++;
}
else if(str[c] == '-') {
mp[j][i - 1] = 1;
indeg[i - 1] ++;
}
c ++;
}
}
toposort();
//for(int i = 0; i <= n; i ++) cout << prefix[i] << " "; cout << endl;
for(int i = 1; i < n; i ++) {
printf("%d ", prefix[i] - prefix[i - 1]);
}
printf("%d\n", prefix[n] - prefix[n - 1]);
}
return 0;
}
最新文章
- python(1)
- 0518 Scrum项目5.0
- MyBatis学习笔记(四) 注解
- ANDROID_MARS学习笔记_S02_014_GSON解析JSON串为对象
- 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker
- inet_ntoa将客户端的IP和port写入M…
- RMAN基础恢复测试
- tornado之子模板
- How do I copy SQL Azure database to my local development server?(如何将Azure 中的数据库备份到本地)
- UTC,BJT时间换算-java
- HDU4578 Transformation【线段树】
- [smf]论坛实现编辑器附件插入的插件
- 更快的方式实现 PHP 数组去重
- 【Golang 接口自动化05】使用yml管理自动化用例
- 集合(一)ArrayList
- vue基础篇(一)
- Java50道经典习题-程序9 求完数
- ctsc2009 移民站选址
- from 组件
- mac 上安装vue模版-D2 Admin
热门文章
- 关于delphi编程的网络文件夹复制的代码精要
- 关于asp.net中gridview的问题,关于footer,16aspx上下的英语交流网程序,管理员的添加和修改有问题
- 关于引用iframe的一点小说明
- BZOJ 1036 [ZJOI2008]树的统计Count (树链剖分)(线段树单点修改)
- Xcode_9_beta.xip 更新下载
- luogu P1468 派对灯 Party Lamps
- lua中self.__index = self是什么意思?
- Vue2.0进阶组件 短信倒计时组件
- [置顶]
 kubernetes资源对象--limitranges
- python学习心得