| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 469 人关注过本帖
标题:这个题目 怎么弄 我的程序出现误差,怎么解决
取消只看楼主 加入收藏
a1004573547
Rank: 2
等 级:论坛游民
帖 子:78
专家分:25
注 册:2013-3-11
结帖率:40%
收藏
已结贴  问题点数:20 回复次数:2 
这个题目 怎么弄 我的程序出现误差,怎么解决
3  等差对

Time Limit:1000MS  Memory Limit:65535K

题型: 编程题   语言: 无限制
描述

   今天是一个特别的日子,百年一遇的光棍节,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

提示

注意不要让数据溢出,及时取模的处理

作者
admin

#include<stdio.h>
int  main()
{
 int T;
 long long n=0;
 scanf("%d",&T);
 while(T--)
 {
  scanf("%I64d",&n);
      printf("%I64d\n", (long long int)((((n*(n+1))%(6*20111111)*((2*n+1)%(20111111*6))+0.5))/6)%20111111);
 }
 return 0;
}
当n=333333时  与结果出现误差了
搜索更多相关主题的帖子: Memory 影响 
2013-04-05 20:24
a1004573547
Rank: 2
等 级:论坛游民
帖 子:78
专家分:25
注 册:2013-3-11
收藏
得分:0 
求教
2013-04-05 20:24
a1004573547
Rank: 2
等 级:论坛游民
帖 子:78
专家分:25
注 册:2013-3-11
收藏
得分:0 
不好意思  是OJ错了      这个程序没有错误
2013-04-06 10:22
快速回复:这个题目 怎么弄 我的程序出现误差,怎么解决
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016714 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved