zoukankan      html  css  js  c++  java
  • 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 Number类
    ConcurrentHashMap.Segment源码解析
    Java Concurrent包初探
    JAVA枚举类
    构造不可变类及其优点
    Unsafe类初探
    Paxos made simple 翻译尝试
    平行二叉堆和优先队列
    Android OpenCV学习
    Android-Java和HTML5交互-混合开发-优化
  • 原文地址:https://www.cnblogs.com/shanyr/p/7337251.html
Copyright © 2011-2022 走看看