hdu_1531 还是差分约束
来源:互联网 发布:1024最新 知乎 编辑:程序博客网 时间:2024/05/01 13:41
这题比上次 racebug和我们讲的那个还要恶心~~上次那个一个水拓扑排序就搞定了,这个恶心的一b!!一开始以为数字可以是实数,挖了好久啊,一个下午有木有!!后面发现所有的数字只能是整数。。。整数和实数还是有区别的~~很大的区别!!
PS:vector建图实在爽歪歪~~少年们都来学哥~用vector建图才是王道啊!
#include<iostream>#include<vector>#include<string>#include<queue>#include<cassert>#include<algorithm>#include<iomanip>using namespace std;const int maxn=111;const double eps=1e-8;struct zz{ int from; int to; int cost;}zx,tz;vector<zz>g[maxn];queue<int>q;int n,m,si,ni,ki;int cont[maxn];int s[maxn];int now,to;int temp;string oi;bool vis[maxn];void init(){ memset(cont,0,sizeof(cont)); memset(vis,false,sizeof(vis)); for(int i=0;i<maxn;i++) { g[i].clear(); } return ;}bool spfa(){ while(!q.empty()) { q.pop(); } for(int i=0;i<=n;i++) { q.push(i); vis[i]=true; s[i]=0; } while(!q.empty()) { now=q.front(); q.pop(); vis[now]=false; for(int i=0;i<g[now].size();i++) { temp = g[now][i].cost + s[now]; to = g[now][i].to; if(temp > s[to]) { s[to]=temp; if(!vis[to]) { q.push(to); cont[to]++; if ( cont[to] > maxn ) { return false; } vis[to]=true; } } } } return true;}int main(){ while(cin>>n) { if(!n) break; init(); cin>>m; for(int i=1;i<=m;i++) { cin>>si>>ni>>oi>>ki; if(oi=="gt") { zx.cost=ki; zx.from=si-1; zx.to=si+ni; zx.cost++; g[si-1].push_back(zx); } else { zx.cost=-ki; zx.from=si+ni; zx.to=si-1; zx.cost++; g[zx.from].push_back(zx); } } if(spfa()) { printf("lamentable kingdom\n"); } else { printf("successful conspiracy\n"); } } return 0;}
- hdu_1531 还是差分约束
- 【图-差分约束】 差分约束
- 差分约束系统
- 差分约束系统
- 差分约束系统
- 差分约束系统
- POJ_1364_差分约束
- 差分约束系统
- 差分约束
- 差分约束 模板
- 差分约束系统
- 差分约束系统
- 差分约束系统
- Poj1275 差分约束
- 【差分约束系统】
- poj1364 差分约束
- hdu1534差分约束
- 差分约束
- Spring 解决线程中无法获得数据库连接
- spring
- assert 断言函数/宏
- java环境变量设置
- sscanf高级用法
- hdu_1531 还是差分约束
- java mail SMTP 发送验证代码 javax.mail.AuthenticationFailedException
- 编译器与默认构造函数
- 纯用SSH管理GIT服务器
- Oracle使用和开发过程中常见错误
- MVC之我见
- No 121 · android手机连接电脑网络设置
- Hibernate
- getResourceAsStream, 修改war包内的文件