1104 Remainder(数论+bfs)
来源:互联网 发布:unity3d vr教程 编辑:程序博客网 时间:2024/04/29 09:26
做完这道题,对取余的理解又进一步深刻了。
这道题直接bfs就行,关键是取余操作。
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> #define LL long long using namespace std; LL ans,k; bool vis[2010005]; char route[100000]; struct node { int step,pre; LL a; int cal; }f[500005]; int bfs(LL n,LL m) { LL tmp; memset(vis,0,sizeof(vis)); int front=0,rear=1; f[0].a=n;f[0].step=0; node p; while(front<rear) { tmp=f[front].a; if(tmp%k==ans)return front; p.step=f[front].step+1; p.pre=front; p.cal=0; p.a=((tmp+m)%(k*m)+k*m)%(k*m); if(!vis[p.a]) { f[rear++]=p; vis[p.a]=1; } p.cal=1; p.a=((tmp-m)%(k*m)+k*m)%(k*m); if(!vis[p.a]) { f[rear++]=p; vis[p.a]=1; } p.cal=2; p.a=((tmp*m)%(k*m)+k*m)%(k*m); if(!vis[p.a]) { vis[p.a]=1; f[rear++]=p; } p.cal=3; p.a=(tmp%m+m)%m%(k*m);//这里刚开始写成((tmp%m)%(m*k)+m*k)%(k*m),错了几次 if(!vis[p.a]) { vis[p.a]=1; f[rear++]=p; } front++; } return 0; } int main() { LL n,m; int i,j; while(scanf("%I64d%I64d%I64d",&n,&k,&m)!=-1) { if(n+k+m==0)break; ans=((n+1)%k+k)%k; /*LL g=gcd(n,m); if(ans%g) { puts("0"); continue; }*/ int len=bfs(n,m); if(len==0) { printf("0\n"); continue; } printf("%d\n",f[len].step); for(i=0;len!=0;) { int tmp=f[len].cal; // printf(" %d",tmp); if(tmp==0) route[i++]='+'; if(tmp==1) route[i++]='-'; if(tmp==2) route[i++]='*'; if(tmp==3) route[i++]='%'; len=f[len].pre; } //printf("\n\n\n"); //printf("i=%d\n",i); for(j=i-1;j>=0;j--) { if(route[j]=='%') printf("%%"); else printf("%c",route[j]); } puts(""); } return 0; }
- 1104 Remainder(数论+bfs)
- hdu 1104 remainder bfs+数论
- hdu 1104 Remainder(BFS+数论)
- HDOJ 1104 Remainder(BFS + 数论)
- HDOJ1104 Remainder(数论+BFS)
- hdu 1104/poj 2426 Remainder(数论,BFS)
- hdu 1104 Remainder BFS
- Hdu 1104 Remainder[Bfs]
- 【bfs】hdu 1104 Remainder
- hdu 1104 Remainder(BFS)
- hdu-1104-Remainder(BFS打印路径+数论)(%与mod的区别)
- HDU 1104 Remainder (BFS)
- hdu 1104 Remainder 【广度优先搜索+数论】
- HDU 1104题Remainder(bfs)
- HDU 1104 Remainder(BFS 同余定理)
- poj2426 Remainder 数学、BFS
- Remainder(bfs + 记录路径)
- hdu 1104 BFS + 数论
- js类数组转换为普通数组
- torque+openmpi+cgroup实现任务间资源隔离
- java.util.concurrent.atomic vs volatile
- windows下配置安卓开发环境
- php基础之字符串与数组(一)
- 1104 Remainder(数论+bfs)
- xampp配置多域名泛域名虚拟主机For linux xampp wampp 多域名设置只有第一个生效的解决办法
- Python 自定义异常
- MySQL性能优化的最佳20+条经验
- 使用PLSQL Developer远程登录oracle,web管理登录
- 关于数据库事务的嵌套
- [南阳理工]nyist14 - 会场安排问题(贪心)
- opencv 第13天 视频处理
- 清除mysql表的数据