2016 ACM/ICPC Asia Regional Dalian Online(2题)
来源:互联网 发布:软件安装管理器下载 编辑:程序博客网 时间:2024/05/10 06:50
5873 Football Game
这题只要找出所有不符合的条件的,然后置ok=false就可以了。
但是这题题目中标出的数据真是坑爹,所有相乘相加的地方都有可能爆long long,而且数组开100绝对不够。
//// main.cpp// Richard//// Created by 邵金杰 on 16/9/10.// Copyright © 2016年 邵金杰. All rights reserved.//#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=100000+10;typedef long long ll;ll score[maxn];int main(){ int t; while(~scanf("%d",&t)) { while(t--) { int n; scanf("%d",&n); int odd=0,c=0; bool ok=true; ll sum=(ll)n*(n-1); for(int i=1;i<=n;i++) { scanf("%I64d",&score[i]); if(score[i]>2*(n-1)) ok=false; if(score[i]==0) c++; odd+=score[i]&1; sum-=score[i]; } if(c>1||sum!=0||odd&1) ok=false; if(!ok) cout<<"F"<<endl; else cout<<"T"<<endl; } } return 0;}
5876 Sparse Graph
给定一张n个点的完全图,去掉m条边,然后求出从七点到其他n-1个点的最短距离。
很明显,补图上bfs,从队列中pop出一个点,他没有与这个点相连的点留下,把其他有边相连的点dist更新加1,并push进队列,直至队列为空。
//// main.cpp// Richard//// Created by 邵金杰 on 16/9/11.// Copyright © 2016年 邵金杰. All rights reserved.//#include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<set>using namespace std;const int maxv=200000+10;const int maxn=40000+10;const int inf=99999999;struct edge{ int u,v,next;}edge[maxn*2];int head[maxv],dist[maxv];int n,e;int cnt;int s;void add_edge(int u,int v){ edge[cnt].u=u; edge[cnt].v=v; edge[cnt].next=head[u]; head[u]=cnt++;}void complement_graph_bfs(){ set<int> ta,tb; set<int>::iterator it; for(int i=1;i<=n;i++) dist[i]=inf; for(int i=1;i<=n;i++) if(i!=s) ta.insert(i); dist[s]=0; queue<int> q; q.push(s); while(!q.empty()) { int now=q.front();q.pop(); for(int i=head[now];i!=-1;i=edge[i].next){ if(ta.find(edge[i].v)!=ta.end()){ ta.erase(edge[i].v); tb.insert(edge[i].v); } } for(it=ta.begin();it!=ta.end();it++) {dist[*it]=dist[now]+1;q.push(*it);} ta.swap(tb);tb.clear(); } for(int i=1;i<=n;i++) if(i!=s) {printf("%d%s",dist[i]==inf?-1:dist[i],i<n?" ":"");} printf("\n");}int main(){ int t; scanf("%d",&t); while(t--) { cnt=0; memset(head,-1,sizeof(head)); scanf("%d%d",&n,&e); int u,v; for(int i=0;i<e;i++){ scanf("%d%d",&u,&v); add_edge(u,v); add_edge(v,u); } scanf("%d",&s); complement_graph_bfs(); } return 0;}
0 0
- 2016 ACM/ICPC Asia Regional Dalian Online(2题)
- 2016 ACM/ICPC Asia Regional Dalian Online
- 2016 ACM/ICPC Asia Regional Dalian Online
- 【题解】 2016 ACM/ICPC Asia Regional Dalian Online (2+5)
- hdu 5875 2016 ACM/ICPC Asia Regional Dalian Online 1008
- HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online
- 2016 ACM/ICPC Asia Regional Dalian Online Sparse Graph(BFS)
- 2016 ACM/ICPC Asia Regional Dalian Online Football Games
- 2016 ACM/ICPC Asia Regional Dalian Online Friends and Enemies
- 2016 ACM/ICPC Asia Regional Dalian Online 1008 Function
- HDU 5875 Function 2016 ACM/ICPC Asia Regional Dalian Online
- 2016 ACM/ICPC Asia Regional Dalian Online 1007
- 2016 ACM/ICPC Asia Regional Dalian Online 大连网赛
- 2016 ACM/ICPC Asia Regional Dalian Online分析
- hdu 5875 2016 ACM/ICPC Asia Regional Dalian Online 1008
- HDU 5873 Football Games(签到题)——2016 ACM/ICPC Asia Regional Dalian Online
- hdu 5876 Sparse Graph(补图最短路) 2016 ACM/ICPC Asia Regional Dalian Online 1009
- HDU 5876 Sparse Graph (补图BFS) 2016 ACM/ICPC Asia Regional Dalian Online
- 线性方程组
- RDDI_DAP Error
- 软件工程课-关于结对编程的讨论
- 神奇的题
- uc_os-II中的任务(2)
- 2016 ACM/ICPC Asia Regional Dalian Online(2题)
- 电路设计_光敏测试数据
- Win8 IIS占用80端口
- java多线程:wait(),notify(),notifyAll()方法
- TCP/IP四层模型
- 20160910基础
- Java含有return 的try catch finally的执行顺序
- Appium中部分api的使用方法
- 使用C# .net开发微信公众号之服务器URL配置