20160319 CodeVs 1073 家族,2033 邮票,1026 逃跑的拉尔夫
来源:互联网 发布:树洞软件 编辑:程序博客网 时间:2024/05/22 12:05
1073 家族
#include<cstdio>using namespace std;int anc[5005];int _find(int x){ if(anc[x]!=x) anc[x]=_find(anc[x]); return anc[x];}int main(){ int n,m,p,a,b; scanf("%d%d%d",&n,&m,&p); for(int i=1;i<=n;i++)anc[i]=i; for(int i=0;i<m;i++){ scanf("%d%d",&a,&b); a=_find(a); b=_find(b); anc[b]=a; } for(int i=0;i<p;i++){ scanf("%d%d",&a,&b); a=_find(a); b=_find(b); if(a==b)printf("Yes\n"); else printf("No\n"); } return 0;}/*基础的并查集一道*/
2033 邮票
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int dp[20000009];int a[55];int main(){ int k,n,maxv=-1; memset(dp,127,sizeof(dp)); scanf("%d%d",&k,&n); for(int i=0;i<n;i++){ scanf("%d",a+i); dp[a[i]]=1; maxv=max(maxv,a[i]); } maxv*=k; for(int i=1;i<=maxv;i++){ for(int j=0;j<n;j++) dp[i+a[j]]=min(dp[i]+1,dp[i+a[j]]); if(dp[i]>k){ maxv=i-1; break; } } printf("%d\n",maxv); return 0;}/*dp[i]代表用邮票贴出i的使用张数*/
1026 逃跑的拉尔夫
#include<cstdio>using namespace std;char g[55][55],dir[1005];char v[1005][55][55];int ap=0,ok,x,y,R,C,m;struct Point{ int x,y;}a[3000];void dfs(int k,int i,int j){ if(v[k][i][j]){ if(v[k][i][j]==2)ok=1; return ; } if(ok)return ; //printf("(%d,%d)\n",i,j); if(i==x&&j==y&&k<0){ ok=1; v[k][i][j]=2; return; } if(k<0)return; switch(dir[k]){ case 'S':for(int c=i-1;c>0&&g[c][j]!='X';c--)dfs(k-1,c,j);break; case 'N':for(int c=i+1;c<=R&&g[c][j]!='X';c++)dfs(k-1,c,j);break; case 'E':for(int c=j-1;c>0&&g[i][c]!='X';c--)dfs(k-1,i,c);break; case 'W':for(int c=j+1;c<=C&&g[i][c]!='X';c++)dfs(k-1,i,c);break; } if(ok)v[k][i][j]=2; else v[k][i][j]=1;}int main(){ char s[10]; scanf("%d%d",&R,&C); for(int i=1;i<=R;i++){ scanf("%s",g[i]+1); for(int j=1;j<=C;j++){ if(g[i][j]=='*'){x=i;y=j;} if(g[i][j]=='.'||g[i][j]=='*'){a[ap].x=i;a[ap].y=j;++ap;} } } scanf("%d",&m); for(int i=0;i<m;i++){ scanf("%s",s); dir[i]=s[0]; } g[x][y]='.'; for(int i=0;i<ap;i++){ ok=0; dfs(m-1,a[i].x,a[i].y); if(ok)g[a[i].x][a[i].y]='*'; } for(int i=1;i<=R;i++){ for(int j=1;j<=C;j++) printf("%c",g[i][j]); printf("\n"); } return 0;}/*记录下所有可达点,逆着从某个空点深搜到起点...这样对于50x50的图太慢了,记忆一下:v[k][i][j]表示逆着走第k个方向的时候在ij位置的搜索结果*/
Finished!
0 0
- 20160319 CodeVs 1073 家族,2033 邮票,1026 逃跑的拉尔夫
- codevs--1026 逃跑的拉尔夫
- CodeVs 1026 逃跑的拉尔夫
- 【codevs 1026】逃跑的拉尔夫
- Codevs 1026 逃跑的拉尔夫
- Codevs 1026 逃跑的拉尔夫
- 【codevs 1026】逃跑的拉尔夫
- 【codevs 1026】逃跑的拉尔夫
- Codevs 1026 逃跑的拉尔夫
- codevs 1026 逃跑的拉尔夫
- codevs 1026 逃跑的拉尔夫
- codevs 1026 逃跑的拉尔夫 模拟
- Codevs 1026 逃跑的拉尔夫 解题报告
- codevs 1026_逃跑的拉尔夫_bfs
- CodeVS 1026 逃跑的拉尔夫 题解
- codevs 1026 逃跑的拉尔夫 BFS
- codevs 1026 逃跑的拉尔夫(BFS)
- 【codevs 1026】 逃跑的拉尔夫 (模拟/广搜)
- 给Dreamweaver安装emmet插件
- python 对中文文件求交集、并集、差集
- 复制构造函数和赋值操作符
- 论文写作技巧
- 使用java时创建数组的三种常用的方法
- 20160319 CodeVs 1073 家族,2033 邮票,1026 逃跑的拉尔夫
- 深入理解Java虚拟机笔记---引用类型和对象是否死亡
- 使用JSP处理用户注册和登陆
- Android处理滑动与点击事件的冲突
- 看懂此文,不再困惑于javascript中的事件绑定、事件冒泡、事件捕获和事件执行顺序
- 教你如何使用Java泛型
- CAShapeLayer和CAGradientLayer
- PCH文件的配置
- hdu1176