CCF-2017-9
来源:互联网 发布:东莞金拓软件 编辑:程序博客网 时间:2024/06/06 07:32
一、打酱油
#include "iostream"using namespace std;int main(){ int n; cin>>n; cout<<n/10+n/50*2+n%50/30<<endl;}
二、公共钥匙盒
#include "iostream"#include "algorithm"#include "set"using namespace std;/*思路:1、考虑到set中红黑树排序检索效率很高,可以用set集合存放某一时刻,所有要钥匙存放状态,比如ge[i]存放i时刻所有需要取出的钥匙;se[i]表示i时刻所有要存放的钥匙2、i时刻,先存钥匙,再取钥匙*/set<int> ge[10010],se[10110];int main(){ int n,k,w,s,c,max_=0; cin>>n>>k; int arr[n+1]; for(int i=1;i<=n;) arr[i++]=i; for(int i=0;i<k;i++) { cin>>w>>s>>c; if(max_<s+c) max_=s+c; ge[s].insert(w);//所有存取状态存入对应的set集合 se[s+c].insert(w); } for(int i=0;i<max_+10;i++) { int x=1; for(set<int>::iterator it=se[i].begin(); it!=se[i].end();++it)//i时刻,从小到大将钥匙放回 { for(x;x<=n;x++) { if(arr[x]==0) { arr[x]=*it; break; } } } for(int xx=1;xx<=n;xx++)//i时刻,取出所有需要取出的钥匙 { if(ge[i].count(arr[xx])) { arr[xx]=0; } } } //输出结果 for(int i=1;i<=n;i++) cout<<arr[i]<<" "; return 0;}
四、通信网络
/*运行超时,用数组替换set集合,就不会运行超时了,不明白为什么?难道set集合的效率比数组低??*/#include "iostream"#include "cstring"#include "vector"#include "set"using namespace std;#define N 1000void dfs(int root,int now,int vist[]);vector<int> v[N+1];set<int> s[N+1];int n,m;void read(){ cin>>n>>m; int a,b; while(m--) { cin>>a>>b; v[a].push_back(b); } for(int i=1; i<=n; i++) { int vist[n+1];//记录结点是否已经遍历 memset(vist,0,sizeof(vist));//头文件为cstring dfs(i,i,vist); }}void dfs(int root,int now,int vist[]){ vist[now]=1; s[root].insert(now); s[now].insert(root); for(int i=0; i<v[now].size(); i++) { if(!vist[v[now][i]]) { dfs(root,v[now][i],vist); } }}int count(){ int cou=0; for(int i=1;i<=n;i++) if(s[i].size()==n) ++cou; return cou;}int main(){ read(); cout<<count()<<endl; return 0;}
#include "iostream"#include "cstring"#include "vector"#include "set"using namespace std;#define N 1000void dfs(int root,int now,int vist[]);vector<int> v[N+1];int connect[N+1][N+1];int n,m;void read(){ cin>>n>>m; int a,b; while(m--) { cin>>a>>b; v[a].push_back(b); } for(int i=1; i<=n; i++) { int vist[n+1];//记录结点是否已经遍历 memset(vist,0,sizeof(vist));//头文件为cstring connect[i][i]=1; dfs(i,i,vist); }}void dfs(int root,int now,int vist[]){ vist[now]=1; for(int i=0; i<v[now].size(); i++) { if(!vist[v[now][i]]) { connect[root][v[now][i]]=1; connect[v[now][i]][root]=1; dfs(root,v[now][i],vist); } }}int count(){ int cou=0; for(int i=1;i<=n;i++) { int j; for(j=1;j<=n;j++) { if(connect[i][j]==0) break; } if(j==n+1) ++cou; } return cou;}int main(){ read(); cout<<count()<<endl; return 0;}
阅读全文
0 0
- CCF-2017-9
- CCF认证2017-9 除法
- ccf 2017-9 1.打酱油
- CCF-2016/9/11
- ccf
- CCF
- ccf
- c++,ccf,2017年9月,打酱油试题
- [解答]CCF-通信网络-2017
- CCF-2015-9-13-04
- CCF 2014 9-2 画图
- csp ccf输入字符串的坑-2017 9 第三题json字符串处理
- CCF-CSP-2017-3-1 分蛋糕
- CCF-CSP-2017-3-2 学生排队
- CCF 2017-03-4 地铁修建
- CCF 2017-03-3 Markdown 模拟
- 2017年福州CCF CCSP参赛体会
- csp ccf 2017 3修地铁问题
- 文章标题
- 讯飞语音的使用及常遇到的问题
- 实现自己的Keras层
- 常微分方程的近似计算和误差估计(2)
- Linux Centos 6.5网络启动不起来Bringing up interface eth0: Error:Connection activation failed:Device not man
- CCF-2017-9
- Rust : link.exe failed的bug
- JSP重点知识
- CentOS Linux解决Device eth0 does not seem to be present
- 【NOIP 2016提高组D1T2】 天天爱跑步 Running Maverick_Frank
- 类装饰器
- LeetCode--Number of Islands
- Android VideoView播放视频只有声音没有图像黑屏
- 6.5 与代理请求有关的问题