3 条题解
-
4
95分做法/取巧100分
#include<bits/stdc++.h> using namespace std; short m,a[6]; // haveCard 当前持有的卡片数量 // haveDrink 当前未喝的饮料数量(have是“拥有”而不是“已经”)(drink是名词而不是动词) // cnt 计数器(程序走了多少步) int n,haveCard[6],haveDrink,cnt; bool flag=true; int main(){ cin>>n>>m; for(short i=1;i<=m;i++){ cin>>a[i]; haveCard[i]+=n; // 初始化卡片持有数 // 一个简单的关于是否可以白嫖的判断(不完善,但可以拿95分了) if(a[i]>m||a[i]>n)flag=false; // 当a的每一项同时小于等于m,n时,肯定可以白嫖 } if(flag)cout<<"Inf"; else{ do{ // do{}while();形式用法自行百度 n+=haveDrink; // 增加已喝 haveDrink=0; // 重置未喝 cnt++; // 新一轮(从1开始) for(short i=1;i<=m;i++){ // 判断是否满足兑换条件 if(haveCard[i]>=a[i]){ int x=haveCard[i]/a[i]; haveDrink+=x; // 兑换完后增加未喝 haveCard[i]%=a[i]; // 减少卡片数量 } } if(haveDrink==0)break; // 如果没有未喝了就说明无法再兑换了,运行结束 // 如果不加下面这个if的话程序20样例只过了19个,95分 if(cnt>55){ // 作用大概就是骗分()() cout<<"Inf"; // 如果程序进行太多步了就大概率是可以白嫖了 return 0; } for(short i=1;i<=m;i++){ haveCard[i]+=haveDrink; // 根据未喝数量增加卡片数量 } }while(1); cout<<n; } return 0; }
-
-7
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 1264
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 210
- 已通过
- 88
- 上传者