• hdu_1034(模拟题)


    很久没有打模拟题了,再次总结一下模拟题的做法:

    仔细分析题意,弄清楚过程

    理清楚模拟步骤,严格按照步骤编写代码

    添加中间输出测试每步结果

    虽然这是一个很简单的水题,但是没有松哥帮忙还是卡了很久,因为没有做好第一步,题目中是老师先吹哨,然后一圈所有同学同事将自己现有糖的一般分给下一个同学,结束后老师将现手里为奇数的糖的同学再多给一颗糖最后判断每个人的糖是否一样,如果一样结束游戏

    代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 int num[100001];
     6 bool ck(int n){
     7     for(int i = 1; i < n ; i++){
     8         if(num[i]!=num[i-1]) return false;
     9     }
    10     return true;
    11 }
    12 int main()
    13 {
    14     int n;
    15     while(~scanf("%d",&n))
    16     {
    17         if(n==0) return 0;
    18         for(int i = 0; i < n; i++) scanf("%d",&num[i]);
    19         int step = 0;
    20         while(1)
    21         {
    22             if(ck(n)) break;
    23             int t;
    24             int p = num[n-1]/2;
    25             for(int i = 0; i < n; i++){
    26                 t = num[i]/2;
    27                 num[i] = num[i]/2+p;
    28                 p = t;
    29                 if(num[i]%2==1) num[i]++;
    30             }
    31             step++;
    32         }
    33         printf("%d %d
    ",step,num[0]);
    34     }
    35     return 0;
    36 }
  • 相关阅读:
    Java中的CopyOnWrite
    Collection和Collections的区别
    java中值类型与引用类型的关系
    Xml的用途
    js弹框的3种方法
    文件夹重定向失败解决方案
    网络管理人员经常遇到的十个问题(转载)
    QTP之下拉列表单选框…
    Windows脚本宿主对象模型
    QTP报错“缺少对象WScript”
  • 原文地址:https://www.cnblogs.com/shanyr/p/7337251.html
Copyright © 2020-2023  润新知