cf#403 A B C
来源:互联网 发布:查看ip端口是否打开 编辑:程序博客网 时间:2024/05/16 19:31
A (模拟)
Andryusha要收n对袜子,他会一只袜子一只袜子的拿出来放在桌子上,只要一有成对的就收回衣柜,求桌子上最多可以同时存在多少种袜子。
一道很简单的模拟水题,标记一下袜子的数量即可。因为粗心,所以习惯性的从1枚举到n,但是是要枚举到2*n,所以wa了一发
#include <cstdio>#include <cstring>#include <string>#include <iostream>#include <algorithm>using namespace std;const int maxn=1e5+10;int a[maxn],vis[maxn];int main(){ int n; scanf("%d",&n); int s; int maxx=0; int cnt=0; for(int i=0;i<n*2;i++) { scanf("%d",&s); if(vis[s]==0) cnt++; if(maxx<cnt) maxx=cnt; vis[s]++; if(vis[s]==2) cnt--; } printf("%d",maxx); return 0;}
B(二分)
有n个人,分别给出这个n个人的位置和时间,求这些人可以聚集在一起的最短时间,可以相向而行;
刚开始xjb模拟一直wa7和8,后来dalao指点说二分答案,对时间进行二分。
#include <cstdio>#include <cstring>#include <string>#include <iostream>#include <algorithm>#include <cmath>#define eps 1e-7using namespace std;const int maxn=6e4+10;struct node{ double s,y;};node ss[maxn];int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%lf",&ss[i].s); for(int i=0;i<n;i++) scanf("%lf",&ss[i].y); double l=0,r=1e9; while(fabs(1.0*(l-r))>eps) { int flag=0; double mid=(l+r)/2.0; double s1=mid*ss[0].y*1.0; double a1=s1+ss[0].s; double a2=ss[0].s-s1; for(int i=1;i<n;i++) { double s2=mid*ss[i].y*1.0; double b1=ss[i].s+s2; double b2=ss[i].s-s2; if(a2>b1||a1<b2) { flag=1; break; } a1=min(a1,b1); a2=max(a2,b2); } if(flag) l=mid+eps; else r=mid-eps; } printf("%.12lf",l); return 0;}
C(dfs)
有一些公园要挂气球,只要是有关联的就要求挂不同颜色。
简单dfs一下,找父亲,与父亲的父亲,和亲兄弟,然后统计一下气球种类的最大值。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>using namespace std;const int maxn=2e5+10;int color[maxn];vector<int> s[maxn];int n,cnt,sum;void dfs(int u,int c,int fa){ color[u]=c; sum=max(sum,c); int cnt=1; for(int i=0;i<s[u].size();i++) { int v=s[u][i]; if(v==fa) continue; while(cnt==color[fa]||cnt==c) cnt++; dfs(v,cnt++,u); }}int main(){ scanf("%d",&n); for(int i=0;i<n-1;i++) { int a,b; scanf("%d%d",&a,&b); s[a].push_back(b); s[b].push_back(a); } dfs(1,1,0); printf("%d\n",sum); for(int i=1;i<=n;i++) { if(i==n) printf("%d\n",color[i]); else printf("%d ",color[i]); } return 0;}
0 0
- cf#403 A B C
- cf 363A B C
- cf(417A,B,C)
- 【CF #435】A B C
- CF 282 A 282B 282C
- CF #261 DIV2 A,B,C,D
- CF #269 DIV2 A,B,C,D
- cf(405A,B,C,D)
- cf(416 A,B,C,E)
- cf(412A,B,C)
- cf(413A,B,C)
- CF#345 div2 A\B\C题
- Cf 363div2 A B C
- cf 734 div2 A,B,C
- CF 271 A Keyboard B Worms C Captain Marmot
- CF Round #616 (A,B,C 字符串,贪心,DFS)
- cf 359A 359B
- cf(415 A,B)
- CentOS安装Nginx
- linux学习笔记(五)
- Majority Element
- Linux下c开发 之 线程通信与pthread_cond_wait()的使用
- Oracle学习之:表连接三种方式
- cf#403 A B C
- Java和JavaScript的相互调用
- Call to undefined function pg_connect()
- 创建和查询可观察序列
- UVA 6-10 699
- Mongodb3.x 权限控制
- Qt mac sdl窗口指针
- www.clickwifi.net——study summary
- text-overflow: ellipsis;