2013长春网赛1010 hdu 4768 Flyer
2013-09-30 16:28
295 查看
题目链接: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代码:
View Code
题意:有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代码:
#include<stdio.h> int a[20005],b[20005],c[20005]; int main() { int n,i,ans,j,cnt; while(scanf("%d",&n)!=EOF) { cnt=0; ans=0; for(i=0;i<n;i++) { scanf("%d%d%d",&a[i],&b[i],&c[i]); for(j=a[i];j<=b[i];j+=c[i]) ans^=j; } for(i=0;i<n;i++) { for(j=a[i];j<=b[i];j+=c[i]) if(ans==j) cnt++; } if(cnt) printf("%d %d\n",ans,cnt); else printf("DC Qiang is unhappy.\n"); } return 0; }
View Code
相关文章推荐
- HDU 4768 Flyer (2013长春网络赛1010题,二分)
- hdu 4768 Flyer 长春网络赛 1010 二分
- hdu 4768 Flyer 二分(2013 ACM/ICPC Asia Regional Changchun Online 1010)
- Hdu 4768 Flyer(2013长春网络赛)
- 2013长春网络赛 1010 Flyer
- HDU 4768 Flyer(13年长春网络赛-J题-二分)
- HDU 4768 Flyer(13年长春网络赛-J题-二分)
- hdu 4768 Flyer (异或操作的应用)
- HDU 4762 Cut the Cake (2013长春网络赛1004题,公式题)
- hdu 4764 && 2013长春网赛题解
- 2013长春网赛1005 hdu 4763 Theme Section(kmp应用)
- HDU 4768:Flyer(等差数列求模和运算)
- HDU 4664 Triangulation(2013多校6 1010题,博弈)
- hdu 4813(2013长春现场赛A题)
- HDU 4764 Stone (2013长春网络赛,水博弈)
- HDU 4768 Flyer(二分)
- HDU 4821 String(2013长春现场赛I题)
- HDU 4768 Flyer(二分)
- 2013多校联合3 1010 No Pain No Game(hdu 4630)
- hdu 4705 Y/杭电2013年多校第十场1010 组合