zoukankan      html  css  js  c++  java
  • 2013长春网赛1010 hdu 4768 Flyer

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4768

    题意:有n个社团发传单,每个社团发给编号为A_i, A_i+C_i,A_i+2*C_i,…A_i+k*C_i (A_i+k*C_i<=B_i, A_i+(k+1)*C_i>B_i)的学生,求收到传单数为奇数的学生的编号和收到的传单数,题目保证最终最多只有一个为奇数。

    分析:x^x=0,x^0=x,因为最终最多只有一个奇数,所以如果存在奇数的话,当所有数异或完之后的值为该奇数,如果不存在的话,异或完后值为0。然后再重头扫一遍计数就行了。

    网上那个二分的方法代码还是看不懂=_=...

    AC代码:

     1 #include<stdio.h>
     2 int a[20005],b[20005],c[20005];
     3 int main()
     4 {
     5     int n,i,ans,j,cnt;
     6     while(scanf("%d",&n)!=EOF)
     7     {
     8         cnt=0;
     9         ans=0;
    10         for(i=0;i<n;i++)
    11         {
    12             scanf("%d%d%d",&a[i],&b[i],&c[i]);
    13             for(j=a[i];j<=b[i];j+=c[i])
    14                 ans^=j;
    15         }
    16         for(i=0;i<n;i++)
    17         {
    18             for(j=a[i];j<=b[i];j+=c[i])
    19                 if(ans==j)
    20                     cnt++;
    21         }
    22         if(cnt)
    23             printf("%d %d
    ",ans,cnt);
    24         else
    25             printf("DC Qiang is unhappy.
    ");
    26     }
    27     return 0;
    28 }
    View Code
  • 相关阅读:
    python
    爬虫
    python 自动登录
    day22 cookie session 中间件 Form
    day10进程、异步IO、
    python第五课
    day21
    day20 Django
    day 19
    day18
  • 原文地址:https://www.cnblogs.com/frog112111/p/3347482.html
Copyright © 2011-2022 走看看