zoukankan      html  css  js  c++  java
  • codeforces 485A.Factory 解题报告

    题目链接:http://codeforces.com/problemset/problem/485/A

    题目意思:给出 a 和 m,a 表示第一日的details,要求该日结束时要多生产 a mod m,那么再加上原来的,就总共有 a + a mod m 的details 啦,然后这个数就成了第二日开始的 details ,接着临一天结束要多生产(a + a mod m) mod m,第三日开始就变成 (a + a mod m) +  (a + a mod m) mod m 。不断地重复重复重复.......问这个 mod 出来的值会不会在某一天会 等于0,会就输出“Yes”,否则“No”。

      话说,这条题目做的时候,看不懂意思 = =.........好久没试过连 A 的意思都看不懂了- - ,而且个details 究竟是什么来的 - -  = = ......

    最常规最保险的做法就是试遍 1e5 次,用一个 vis 数组来记录 mod 出来的值,假设为 x ,即 vis[x] = 1,当发现又算出 x 的时候(判断是否vis[x]),那么就代表余数循环了,就没有必要继续尝试!

        然后我是非常规做的,凭着女人的直觉,开了个50个循环,过了。不过很不幸的是,不知道是什么原理啦~~~~然后想找到这个确切值,发现是17。就是说,如果 17 次循环,mod 出来的结果都不为 0,就没必要继续往后尝试之后的天数了。知道原理的,望各位大侠指点指点,小女子不胜感激。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cstring>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     #ifndef ONLINE_JUDGE
    10         freopen("input.txt", "r", stdin);
    11     #endif
    12     int a, m;
    13     while (scanf("%d%d", &a, &m) != EOF)
    14     {
    15         bool flag = true;
    16         for (int i = 1; i <= 17; i++)   // 17之后都可以
    17         {
    18             int mod = a % m;
    19             if (mod == 0)
    20             {
    21                 flag = false;
    22                 break;
    23             }
    24             a = a + mod;
    25         }
    26         printf("%s
    ", flag ? "No" : "Yes");
    27     }
    28     return 0;
    29 }
  • 相关阅读:
    购物车宣传页
    项目开发流程
    AJAX跨域
    jQuery中的AJAX
    AJAX封装
    AJAX里使用模板引擎
    AJAX的具体使用
    AJAX的基本使用
    js技巧汇总
    CSS特效汇集
  • 原文地址:https://www.cnblogs.com/windysai/p/4079905.html
Copyright © 2011-2022 走看看