HDU - 1495 - 非常可乐
先上题目:
非常可乐
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4482 Accepted Submission(s): 1815
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <set> 5 #include <queue> 6 #include <utility> 7 #define x first 8 #define y second 9 using namespace std; 10 11 typedef pair<pair<int,int>,int> piii; 12 int s,n,m,ti; 13 14 set<piii> ss; 15 16 bool isok(piii a){ 17 if(a.x.x*2==s && a.x.y*2==s) return 1; 18 else if(a.x.x*2==s && a.y*2==s) return 1; 19 else if(a.x.y*2==s && a.y*2==s) return 1; 20 return 0; 21 } 22 23 inline piii mpiii(int a,int b,int c) { return make_pair( make_pair(a,b) , c ); } 24 25 bool check(){ 26 ti=0; 27 queue<pair<piii,int> > q; 28 pair<piii,int> tt; 29 piii u = mpiii(s,0,0); 30 q.push(make_pair(u,0)); 31 ss.insert(u); 32 while(!q.empty()){ 33 int tti; 34 tt = q.front(); 35 q.pop(); 36 u = tt.x; 37 tti = tt.y; 38 //s-->n 39 if(u.x.x>0 && (n-u.x.y)>0){ 40 if( u.x.x > (n-u.x.y) ){ u.x.x-=(n-u.x.y); u.x.y=n; } 41 else{ u.x.y+=u.x.x; u.x.x=0; } 42 if(ss.count(u)<=0){ 43 tti++; 44 if(isok(u)){ti=tti; return 1;} 45 ss.insert(u); 46 q.push( make_pair(u,tti) ); 47 } 48 } 49 //s-->m 50 u = tt.x; 51 tti = tt.y; 52 if(u.x.x>0 && (m-u.y)>0){ 53 if( u.x.x > (m-u.y) ){ u.x.x-=(m-u.y); u.y=m; } 54 else{ u.y+=u.x.x; u.x.x=0; } 55 if(ss.count(u)<=0){ 56 tti++; 57 if(isok(u)){ti=tti; return 1;} 58 ss.insert(u); 59 q.push( make_pair(u,tti) ); 60 } 61 } 62 //n-->s 63 u = tt.x; 64 tti = tt.y; 65 if(u.x.y>0 && (s-u.x.x)>0){ 66 if( u.x.y > (s-u.x.x) ){ u.x.y-=(s-u.x.x); u.x.x=s; } 67 else{ u.x.x+=u.x.y; u.x.y=0; } 68 if(ss.count(u)<=0){ 69 tti++; 70 if(isok(u)){ti=tti; return 1;} 71 ss.insert(u); 72 q.push( make_pair(u,tti) ); 73 } 74 } 75 //n-->m 76 u = tt.x; 77 tti = tt.y; 78 if(u.x.y>0 && (m-u.y)>0){ 79 if( u.x.y > (m-u.y) ){ u.x.y-=(m-u.y); u.y=m; } 80 else{ u.y+=u.x.y; u.x.y=0;} 81 if(ss.count(u)<=0){ 82 tti++; 83 if(isok(u)){ti=tti; return 1;} 84 ss.insert(u); 85 q.push( make_pair(u,tti) ); 86 } 87 } 88 //m-->s 89 u = tt.x; 90 tti = tt.y; 91 if(u.y>0 && (s-u.x.x)>0){ 92 if( u.y > (s-u.x.x) ){ u.y-=(s-u.x.x); u.x.x=s; } 93 else{ u.x.x+=u.y; u.y=0; } 94 if(ss.count(u)<=0){ 95 tti++; 96 if(isok(u)){ti=tti; return 1;} 97 ss.insert(u); 98 q.push( make_pair(u,tti) ); 99 } 100 } 101 //m-->n 102 u = tt.x; 103 tti = tt.y; 104 if(u.y>0 && (n-u.x.y)>0){ 105 if( u.y > (n-u.x.y) ){ u.y-=(n-u.x.y); u.x.y=n; } 106 else{ u.x.y+=u.y; u.y=0; } 107 if(ss.count(u)<=0){ 108 tti++; 109 if(isok(u)){ti=tti; return 1;} 110 ss.insert(u); 111 q.push( make_pair(u,tti) ); 112 } 113 } 114 } 115 return 0; 116 } 117 118 int main() 119 { 120 //freopen("data.txt","r",stdin); 121 while(scanf("%d %d %d",&s,&n,&m),(s+n+m)){ 122 ss.clear(); 123 if( (s&1)==0 && check()) printf("%d\n",ti); 124 else printf("NO\n"); 125 } 126 return 0; 127 }
1495
转载于:https://www.cnblogs.com/sineatos/p/3847006.html
HDU - 1495 - 非常可乐相关推荐
- HDU 1495 非常可乐
- HDU 1495 - 非常可乐 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和 ...
- HDU - 1495 非常可乐(BFS,数学)
HDU - 1495 非常可乐(BFS,数学) 巨佬的数学解法 #include<iostream> using namespace std; int gcd(int a,int b) { ...
- HDU 1495 非常可乐
非常可乐 http://acm.hdu.edu.cn/showproblem.php?pid=1495 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- HDU 1495 非常可乐(数论,BFS)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 1495(非常可乐)
Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且 ...
- hdu 1495 非常可乐 (bfs)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 1495 非常可乐(BFS||数论)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- Hdu 1495 非常可乐、BFS、模拟:【题解】
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descri ...
- hdu 1495 非常可乐(BFS)
题目链接:hdu1495 共有6种操作,x-->y,x-->z,y-->x,y-->z,z-->x,z-->y #include<stdio.h> #i ...
最新文章
- 如何合理使用java异常_如何更合理的利用Java中的异常抛出?
- 一款java代码生成器(我受够了加班),走起!
- wsl2设置挂载_Windows下的Linux子系统安装,WSL 2下配置docker
- list 数据类型的应用场景
- 绿盟防火墙配置手册_双链路环境下不同品牌防火墙更换案例分享
- 资源放送丨《大规模 SQL 审核设计与实践》PPT视频
- 【Excel-2010】空值替换
- 因为孤浪的关于爱情...关于婚姻...关于生活... 走进的CTO的第一天
- layer根据内容动态改变窗口高度
- java IO流详解及特性
- 简单示例用例(Simple Example Use Cases)--hive GettingStarted用例翻译
- ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、
- 13、TCP Socket与UDP Socket
- thinkpad x250装黑苹果教程_GitHub - siweijianrong/Hackintosh: Hackintosh黑苹果长期维护机型EFI及安装教程整理...
- 如何求复数的模用计算机,复数计算器(复数运算工具)
- linux cpufreq 设置
- 年底大标季来袭,一步之遥2.0投标培训班助你实力升级!
- 简述使用混合传递参数时的基本原则_过程控制系统与仪表习题答案 -
- AD19 编译报错:has only one pin 和 floating net label
- 旅行+社交APP功能需求分析
热门文章
- 译文 | 与TensorFlow的第一次接触 第五章:多层神经网络
- 算法移植优化(六)tensorflow模型移植推理优化
- 最全面超大规模数据集下载链接汇总(转)
- 黑苹果睡眠重启后死机_iPhone卡屏、死机、黑屏?| 学会这招,秒解!
- cmu的计算机专业项目有哪些,CMU卡耐基梅隆大学计算机学院项目介绍(一)
- MYSQL8 关键字(官方)
- 使用Python音频双通道分离
- $(document).ready和window.onload的区别
- BNU44583——Star Trek: First Contact——————【01背包】
- 基于插件架构的简单的Winform框架(下)