首页 > 代码库 > 蓝桥--分糖果[模拟]
蓝桥--分糖果[模拟]
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T124
题目大意:
老师先给n个同学各分偶数个糖果,然后【同时】每个同学将他手中的一半分给左手边的同学。老师将手中为奇数个的同学加一个糖果使其为偶数个糖果。游戏继续进行,直到所有同学手中的糖果数相同。
解题思路:
解题时傻*了,没有考虑到【同时】而是依次累积后再/2,耗时2个小时也是**。
直接暴力模拟。
AC Code:
1 #include<stdio.h> 2 int arr[105],n; 3 int check(const int n) { 4 int i; 5 for(i=1; i<n; i++) 6 if(arr[0]!=arr[i])return 0; 7 return 1; 8 } 9 int main() { 10 int need,j,tem; 11 while(scanf("%d",&n)!=EOF) { 12 need=0; 13 for(j=0; j<n; j++) { 14 scanf("%d",&arr[j]); 15 } 16 17 while(!check(n)) { 18 tem=arr[0]/2; 19 for(j=0; j<n-1; j++) { 20 arr[j]=arr[j]/2+arr[j+1]/2; 21 if(arr[j]&1)need+=1,arr[j]+=1; 22 }; 23 arr[n-1]=arr[n-1]/2+tem; 24 if(arr[n-1]&1)need+=1,arr[n-1]+=1; 25 } 26 printf("%d\n",need); 27 } 28 return 0; 29 }
蓝桥--分糖果[模拟]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。