nyoj 973 天下第一
来源:互联网 发布:sql 最大值减最小值 编辑:程序博客网 时间:2024/05/01 01:46
这是第一次真正的接触spfa,原来看过,表示能够理解。。。
但是,当真正上手的时候,才发现有那么多细节需要注意。。。
其中,最主要的问题是前面没学过邻接表,所以这也是第一次使用。。。
此题是一个集训队的同学出的,虽然题目比较坑人,但考察的点还是比较清晰的。。。
spfa的判环。。。
其中,wa了几次,因为开始的1入队的时候,只把divs和标记数组vis初始化了,忘了将进队列次数统计cnt数组初始化。。。
这点表示不理解,为什么必须保证当某元素入队恰好达到n次的时候才能保证输出是环呢。。。有待以后考察。。。
附上代码:
#include<stdio.h>#include<queue>#include<string.h>#include<vector>using namespace std;struct step{ int b,next; double w;}body[1002];struct st{ int h;}head[1002];double divs[1002];int vis[1002];int cnt[1002];int n;int spfa(){ queue <int> q; q.push(1); vis[1]=1; divs[1]=1; cnt[1]++; while(!q.empty()) { int e=q.front(); q.pop(); vis[e]=0; for(int i=head[e].h; i!=-1; i=body[i].next) { //printf("**%d %.2lf %.2lf %.2lf %d\n",i,divs[e],body[i].w,divs[body[i].b],body[i].next); if(divs[e]*body[i].w>divs[body[i].b]) { divs[body[i].b]=divs[e]*body[i].w; int k=body[i].b; if(!vis[k]) { vis[k]=1; q.push(k); cnt[k]++; if(cnt[k]>=n) { return 1; } } } } } return 0;}int main(){ int t; scanf("%d",&t); while(t--) { memset(vis,0,sizeof(vis)); memset(cnt,0,sizeof(cnt)); memset(divs,0,sizeof(divs)); memset(body,0,sizeof(body)); memset(head,-1,sizeof(head)); int m;int z=0; scanf("%d%d",&n,&m); for(int i=0; i<m; i++) { int a,b; double f; scanf("%d%lf%d",&a,&f,&b); { body[z].b=b; body[z].w=f; body[z].next=head[a].h; head[a].h=z++; // printf("&&&%d %d %d \n",z-1,body[z-1].next,head[a].h); } } int flag=spfa(); if(flag) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- nyoj 973 天下第一
- NYOJ 973 天下第一
- nyoj 973 天下第一
- nyoj 973 天下第一
- NYOJ 973 天下第一(最长路判环)
- NYOJ-973-天下第一(SPFA判环)
- nyoj--973--天下第一(SPFA判断负环)
- NYOJ 973 天下第一 判断有没有环存在
- 天下第一
- 天下第一 973 (SPFA模板求生成环 好题)
- 天下第一文
- 天下第一,唯我独尊!
- nyoj973天下第一
- NYOJ973_天下第一
- 天下第一庄(石家庄)的八个天下第一
- [搞笑] 天下第一剑
- 天下第一的东方朔
- 天下第一萌程序
- 分析一个文本文件(英文)中各个词出现的频率,并使用vs2012的performance analysis tool分析
- 关于lua数字for循环易错点
- Unique Binary Search Trees II
- task与activity的关系
- iPhone 真机调试安装流程
- nyoj 973 天下第一
- Kinect开发学习笔记之(七)骨骼数据的提取
- arm指令之mov
- 没什么的什么
- Android ATCID客制化AT命令
- 为什么接口中定义的变量必须为常量?
- 为什么要"去IOE"
- struts2拦截器判断用户是否为ajax请求
- 关于cocos2d-x项目防止八门神器等修改工具的一种解决办法