Jzoj3192 球
小包有N个球和A个盒子。球标号为0到N-1,盒子编号为0到A-1。标号为x的球放在下标为x mod A的盒子里。
然后他得到了B个新盒子,编号为0到B-1。他想把所有球从旧盒子里面拿出来放到新盒子,标号为x的球放在下标为x mod B的盒子里。
对于某个球来说,如果原本放在下标为a的旧盒子,现在放在下表为b的新盒子,那么费用为|a-b|。
求出总花费。a,b<10^6 N<10^9
这个题比较有趣
首先我们发现一个性质,对于0~a-1这a个数,我们只需要知道0对应的是哪个数,就可以快速算出这a个数的贡献
比如a=3 b=5
012|012|012|012|012
012|340|123|401|234
对于第一组,我们知道贡献显然为0
第二组贡献为3*2+2*1=8
第三组类似
另外呢,我们发现对于c=lcm(a,b)来说,0~c-1和c~2c-1的答案相同,即有循环
所以我们可以将时间复杂度优化到O(a)
#include<stdio.h>
#include<algorithm>
#define L long long
using namespace std;
L gcd(L a,L b){for(L c;b;a=b,b=c) c=a%b;return a;
}
inline L f(L i,L j,L k){L S1=min(i,j-k)*k;L S2=(i-min(i,j-k))*(j-k);return S1+S2;
}
int main(){L i,n,a,b,S=0,r,c,S1=0;scanf("%lld%lld%lld",&n,&a,&b);r=gcd(a,b); c=a/r*b;if(a>b) swap(a,b);for(i=0;i<c;i+=a)S1+=f(a,b,i%b);S+=S1*(n/c); n%=c;for(i=0;i<n;i+=a)S+=f(a,b,i%b);if(i>a){ i-=a; S-=f(a,b,i%b); }for(;i<n;++i) S+=abs((i%a)-(i%b));printf("%lld\n",S);
}
转载于:https://www.cnblogs.com/Extended-Ash/p/9477355.html
Jzoj3192 球相关推荐
- 是否存在分布式的【大泥球】?
2021-11-11 15:08 是否存在分布式的[大泥球]? 人们往往把微服务架构当成一剂良药,用以解决单体应用内的大泥球问题.然而,大泥球的本质问题是因为代码都位于同一个进程里运行的吗?换言之,如 ...
- NOIP模拟 数球(思维题)
[题目描述] 小A有n个球,编号分别为1到n,小A每次都会从n个球中取出若干个球,至少取一个,至多取n个,每次取完再放回去,需要满足以下两个条件. (1)每次取出的球的个数两两不同. (2)每次取出的 ...
- PRT(Precomputed Radiance Transfer)球谐光照(Spherical Harmonic Lighting)
最近因为开始做PRT(Precomputed Radiance Transfer),看了一些资料.wikipedia上的解释: Precomputed Radiance Transfer ...
- 华为畅享8的悬浮窗在哪里_华为畅享8悬浮球设置 | 手游网游页游攻略大全
发布时间:2015-12-03 华为畅享5s是近期华为推出的金属指纹识别千元机,较高的售价和十足的卖点让华为畅享5s关注度颇高.但是真正用起来华为畅享5s表现怎么样呢?好不好呢?下面99安卓网小编就分 ...
- 悬浮球 / 悬浮按钮 / 辅助按钮
原文链接:https://github.com/jinht/FloatingBall 类似于 iOS 系统自带的 AssistiveTouch / 京东 / 聚划算 / 建行等的辅助按钮 -- 由an ...
- 使用自定义材质球,实现NGUI屏幕溶解和灰显
UITexture实现的溶解: 重设UITeture的材质球实现上述效果,把当前屏幕渲染的Texture2D丢给UITexture,即可实现UI屏幕特效,背景模糊等都可以. 难点主要是实时刷新问题 解 ...
- 一个球从100米高度自由落下,每次落地后反弹回原高度的一半; * 再落下,求在第几次之后反弹高度小于0.1米, * 并计算在这一次落地时共经过多少米?...
package com.db2;/*** 一个球从100米高度自由落下,每次落地后反弹回原高度的一半: * 再落下,求在第几次之后反弹高度小于0.1米,* 并计算在这一次落地时共经过多少米?* * @ ...
- 首款AI看球机器人亮相北京,已上线IOS版和安卓版
3月9日,魔方元科技在北京举办"机器人陪你看世界杯"为主题的产品沟通分享会,发布了其自主研发的产品"AI球".据悉,"AI球"是首款立足于足 ...
- ACMNO.14一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数 输入 M N 输出 它在第N次落地时反弹多高?共经过多少米
题目描述 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下.它在第N次落地时反弹多高?共经过多少米? 保留两位小数 输入 M N 输出 它在第N次落地时反弹多高?共经过多少米? 保留两位小数 ...
最新文章
- Opencv学习笔记之OpenCV介绍
- Curl http_code 状态码
- php phar包require报错,php,_很奇怪,php 引入了phar,但是报错,说Predis\Client类找不到?,php - phpStudy...
- Dynamic动态类型
- 仿iReader-按menu键弹出PopupWindow布局界面
- mysql ---事务
- slf4j没有在linux中生成日志,logback+SLF4J 没打印日志
- 螃蟹保存方法保存时间_中秋吃不完的螃蟹如何保存?蟹农:生螃蟹冰箱冷藏,熟螃蟹别隔夜...
- 上周Asp.net源码(11.5-11.10)免费下载列表
- Backward_chaining
- Matpower疑惑解答
- 红外接收电路自己制作,我用过的
- 服装系统mysql设计_服装行业ERP系统的设计与实现-店铺模块(SSH,MySQL)(含录像)
- HTML源码大放送1
- 输入两个正整数m和n,求其最大公约数和最小公倍数(常见的错误代码分析)
- sketch交互动效能导入html吗,UI设计利器Sketch +最新交互利器 Framer 配合使用和动效制作...
- 【使用C++开发MCU】02-IIC实例之读取温度
- 打开Docx文件的方法
- 复试-网安开放性问题
- 买了SKS的W530
热门文章
- 电动车爬坡时究竟应该用最快档还是用最慢档?
- 做外贸出口,要想快速开发客户,快速赚大钱
- 赚钱的一大障碍:知道的赚钱门路太多
- P5 周志华:“数据、算法、算力”,人工智能三要素在未来还要加上“知识”
- 在构造函数中使用new时应注意的事项
- 用字符数组存放和处理字符串
- 微软power bi_Microsoft Power Platform快速概述
- aws rds监控慢sql_在AWS RDS SQL Server上的SSAS中部署表格数据库
- SQL Server舍入功能概述– SQL舍入,上限和下限
- 在AWS RDS SQL Server中恢复数据