ACM复习(43)10674 等差对
2018-03-19 19:26
399 查看
Description
今天是一个特别的日子,百年一遇的光棍节,2011.11.11,xym收到一个装着礼物的信封,是一位mm的XX书,里面是两个棒棒糖和一封信。
信里是一道智力题:
定义如果 < x0,y0>和 < x1,y1>满足x0-x1=y0-y1,则称这两个为等差对。
mm的问题是,问在 < x,y>(0<=x,y<=n)<0,0>,<0,1>…<1,0>,<1,1>…<2,0>,
<2,1>… < n,0>… < n,1>…这(n+1)^2个有序对中存在多少个等差对?
但是xym因为昨晚听他们班的女生唱歌太晚睡觉了,严重影响状态,现在他只能请求各位scau未来的希望帮助他解决这个问题。
输入格式
第一行输入一个整数T(T<=1000),表示case数。
下面T行有T个case,每个case只有一个整数n(1<=n<=10^9),表示0<=x,y<=n;但是由于测试的时候发现用scanf(“%lld”,&n)有bug,所以为了修正这个bug,请各位用long long读入的同学在读入前先赋0给变量,
例如 long long n=0; scanf(“%lld”,&n);
输出格式
每个case输出一行,表示等差对的数量,这个结果可能很大,只需最后结果%20111111即可。
输入样例
2
2
100
输出样例
5
338350
提示
注意不要让数据溢出,及时取模的处理
这里计算前可以先把6除去,6 = 2 * 3,三个分子里面怎么也能找到这两个因子吧?
今天是一个特别的日子,百年一遇的光棍节,2011.11.11,xym收到一个装着礼物的信封,是一位mm的XX书,里面是两个棒棒糖和一封信。
信里是一道智力题:
定义如果 < x0,y0>和 < x1,y1>满足x0-x1=y0-y1,则称这两个为等差对。
mm的问题是,问在 < x,y>(0<=x,y<=n)<0,0>,<0,1>…<1,0>,<1,1>…<2,0>,
<2,1>… < n,0>… < n,1>…这(n+1)^2个有序对中存在多少个等差对?
但是xym因为昨晚听他们班的女生唱歌太晚睡觉了,严重影响状态,现在他只能请求各位scau未来的希望帮助他解决这个问题。
输入格式
第一行输入一个整数T(T<=1000),表示case数。
下面T行有T个case,每个case只有一个整数n(1<=n<=10^9),表示0<=x,y<=n;但是由于测试的时候发现用scanf(“%lld”,&n)有bug,所以为了修正这个bug,请各位用long long读入的同学在读入前先赋0给变量,
例如 long long n=0; scanf(“%lld”,&n);
输出格式
每个case输出一行,表示等差对的数量,这个结果可能很大,只需最后结果%20111111即可。
输入样例
2
2
100
输出样例
5
338350
提示
注意不要让数据溢出,及时取模的处理
解题思路
这里计算前可以先把6除去,6 = 2 * 3,三个分子里面怎么也能找到这两个因子吧?
#include<stdio.h> int main() { int t; long long n, x, y, z, total; scanf("%d", &t); while(t --) { scanf("%lld", &n); x = n; y = n + 1; z = 2 * n + 1; if(x % 2 == 0) x /= 2; else y /= 2; if(x % 3 == 0) x /= 3; else if(y % 3 == 0) y /= 3; else z /= 3; total = (((x % 20111111) * (y % 20111111)) % 20111111) * (z % 20111111) % 20111111; printf("%lld\n", total); } return 0; }
相关文章推荐
- ACM复习(42)10677 我们仍未知道那天所看见的花的名字
- ACM复习(26)8635 气球
- [ACM] hdu 1465 不容易系列之一(错排复习)
- ACM复习(4)1142 巡逻的士兵
- HDOJ HDU 2078 复习时间 ACM 2078 IN HDU
- 2015 acm icpc asia regional changchun 队内 模拟 + 背包复习 +Tire树
- [ACM] hdu 1465 不容易系列之一(错排复习)
- ACM复习(40)10693 PKKJ的生日礼物
- [ACM] hdu 1231 最大连续子序列 (动规复习)
- ACM复习(5)1076 K尾相等数
- ACM复习(21)8626 原子量计数
- [ACM] hdu 1465 不容易系列之一(错排复习)
- ACM复习(35)9513 防空洞
- dutacm.club_1094_等差区间_(线段树)(RMQ算法)
- 10674 等差对
- ACM_03复习高中知识
- ACM复习(8)1143 多少个Fibonacci数
- ACM复习(11)8615 快乐
- ACM复习(13)8612 发牌
- ACM复习(46)10690 分面包