hdu 4611
2013hdu多校联赛二的第一题,当时队友说两个盒子个数的最小公倍数是周期,
如果两个数的最小公倍数比较大的时候(最大是9999900000),如果遍历求的话肯定会超时
当时想找各种规律,都没找到,最后我想到了一种遍历的优化,就是每次不是只增加一个数,
求出最大mi个球在两个盒子的序号都是递增的,那么每次只需要加上第一项差值的mi陪,
球的序号加上mi,肯定比每次加1要快,把遍历的区间缩短了。
结果一看求出最大的9999900000答案瞬间出来了,信心大增,结果wrong了几次
当时有个想法把变量都改成64位的,以前做题的时候遇到过这样的问题,
如果64位跟int混合运算会出现错误,改完之后abs函数有个警告,就又改回去了,
当时有几个答案跟暴力出来的结果不一样总以为有什么情况没考虑到,就没太在意这个问题,
今天改完64位,一下就A了,那个后悔啊,,,,,,,,,,,,,,,,,,,,,,,,
#include <stdio.h>
#include <string.h>
__int64 gcd(__int64 a,__int64 b)
{
if(b==0)return a;
else return gcd(b,a%b);
}
__int64 abs(__int64 a)
{
if(a>0)return a;
return -a;
}
__int64 cont(__int64 n,__int64 a,__int64 b)
{
__int64 ans,i,mi;
i=0;ans=0;
while(i<n)
{
mi=(a-i%a)>(b-i%b)?(b-i%b):(a-i%a);
if(i+mi>=n)
mi=n-i;
ans+=abs(i%a-i%b)*mi;
i+=mi;
}
return ans;
}
int main()
{
int T;
__int64 n,a,b,t;
__int64 ans;
scanf("%d",&T);
while(T--)
{
scanf("%I64d%I64d%I64d",&n,&a,&b);
t=gcd(a,b);
t=a*b/t;
if (t>=n) ans=cont(n,a,b);
else ans=cont(t,a,b)*(n/t)+cont(n%t,a,b);
printf("%I64d\n",ans);
}
return 0;
}
hdu 4611的更多相关文章
- hdu 4611 Balls Rearrangement
http://acm.hdu.edu.cn/showproblem.php?pid=4611 从A中向B中移动和从B中向A中移动的效果是一样的,我们假设从B中向A中移动 而且A>B 我们先求出所 ...
- HDU 4611 Balls Rearrangement (数学-思维逻辑题)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4611 题意:给你一个N.A.B,要你求 AC代码: #include <iostream> ...
- HDU 4611 Balls Rearrangement 数学
Balls Rearrangement 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4611 Description Bob has N balls ...
- HDU 4611 - Balls Rearrangement(2013MUTC2-1001)(数学,区间压缩)
以前好像是在UVa上貌似做过类似的,mod的剩余,今天比赛的时候受baofeng指点,完成了此道题 此题题意:求sum(|i%A-i%B|)(0<i<N-1) A.B的循环节不同时,会有重 ...
- 2013 多校联合 2 A Balls Rearrangement (hdu 4611)
Balls Rearrangement Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Othe ...
- HDU 4611 Balls Rearrangement(2013多校2 1001题)
Balls Rearrangement Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Othe ...
- 【 2013 Multi-University Training Contest 2 】
HDU 4611 Balls Rearrangement 令lcm=LCM(a,b),gcd=GCD(a,b).cal(n,a,b)表示sum(abs(i%a-i%b)),0<=i<n. ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
随机推荐
- Hibernaate事务管理
Hibernate使用session时需要继承HibernateDaoSupport对象 HibernateDaoSupport对象中包含默认的getSession()方法,但不可以通过该方法直接启动 ...
- Juqery 中使用 ajax
从 test.js 载入 JSON 数据,附加参数,显示 JSON 数据中一个 name 字段数据. jQuery 代码: $.getJSON("test.js", { name: ...
- 带CheckBox的TreeView网上出错问题解决办法
问题描述:TreeView上传到服务器,预览效果发现节点图片不显示.展开合并功能缺失.解决办法: 以下是我个人的解决办法,最终的效果实现了,但是还有一点点小遗憾,就是页面上有基于微软的调用js的报错信 ...
- Windows下安装Django及WEB服务启动
如果使用的是 Linux 或 Mac OS X ,系统可能已经预装了 Python .在命令提示符下 (或 OS X 的终端中) 输入python ,如果出现python编辑环境,说明 ...
- python中发送get或post请求
示例 get import httplib import uuid import time url = "/KM/test.php?time=" url += str(int(ti ...
- (原)error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5577534.html 在debug下使用intel的mkl库时(release下无此问题),莫名的出现 ...
- OER 7451 in Load Indicator : Error Code = OSD-04500:指定了非法选项
alert 日志错误OER 7451 in Load Indicator : Error Code = OSD-04500:指定了非法选项 Sun Apr 22 11:15:51 2012 OER 7 ...
- CSS3前缀
我们经常会遇到写的有些css3属性会在不同的浏览器下呈现不兼容的情况,那是因为浏览器内核不同而导致的兼容性问题. 首先我们需要先了解一下目前的几种现代浏览器的内核,主流内容主要有Mozilla(熟悉的 ...
- 有关PHP中点击下载文件的小功能
最近需要在项目里加一个可以点击导出树状目录的目录结构图, 我在网上查了之后,发现基本千篇一律, 都是使用下面这种header函数, 直接去readfile() 这个文件 header('Content ...
- thinkphp使用模块/控制器/操作访问时出现No input file specified.解决方式
thinkphp使用 http://serverName/index.php/模块/控制器/操作 访问时,出现了 No input file specified. 的错误 解决办法: 一: 开启cgi ...