vijos - P1732能量採集 (状态转移)
背景
描写叙述
栋栋有一块长方形的地。他在地上种了一种能量植物,这样的植物能够採集太阳光的能量。
在这些植物採集能量后,栋栋再使用一个能量汇集机器把这些植物採集到的能量汇集到一起。
栋栋的植物种得很整齐。一共同拥有n列。每列有m棵。植物的横竖间距都一样,因此对于每一棵植物。栋栋能够用一个坐标(x, y)来表示。当中x的范围是1至n。表示是在第x列。y的范围是1至m。表示是在第x列的第y棵。
因为能量汇集机器较大,不便移动,栋栋将它放在了一个角上。坐标正好是(0, 0)。
能量汇集机器在汇集的过程中有一定的能量损失。假设一棵植物与能量汇集机器连接而成的线段上有k棵植物,则能 量的损失为2k + 1。比如,当能量汇集机器收集坐标为(2, 4)的植物时,因为连接线段上存在一棵植物(1, 2),会产生3的能量损失。
注意。假设一棵植物与能量汇集机器连接的线段上没有植物,则能量损失为1。如今要计算总的能量损失。
以下给出了一个能量採集的样例,当中n = 5,m = 4。一共同拥有20棵植物,在每棵植物上标明了能量汇集机器收集它的能量时产生的能量损失。
格式
输入格式
输入文件仅包括一行,为两个整数n和m。
输出格式
输出文件仅包括一个整数,表示总共产生的能量损失。
限制
每一个測试点1s。
提示
对于10%的数据:1 ≤ n, m ≤ 10;
对于50%的数据:1 ≤ n, m ≤ 100;
对于80%的数据:1 ≤ n, m ≤ 1000。
对于90%的数据:1 ≤ n, m ≤ 10,000。
对于100%的数据:1 ≤ n, m ≤ 100,000。
来源
NOI2010
先找到。公约数i的个数,然后减去GCD(a,b)!= i的个数,即得到了GCD(a,b) == 1的个数,然后
直接运用公式(k - 1) * 2 + 1就可以(记住,第一层循环是倒序)
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
typedef long long LL;
const int MAXN = 1e5 + 5;
LL DP[MAXN], BP[MAXN];
int main() {
LL n, m;
scanf("%I64d%I64d", &n, &m);
LL Min = min(n, m);
memset(DP, 0 ,sizeof(DP));
memset(BP, 0 ,sizeof(BP));
for(int i = 1; i <= Min; i ++) {
DP[i] = (m / i) * (n / i);
}
LL ans = 0;
for(int i = Min; i >= 1 ; i --) {
BP[i] = DP[i];
for(int j = i * 2; j <= Min; j += i) {
BP[i] -= BP[j];
}
ans += BP[i] * ((i - 1) * 2 + 1);
}
printf("%I64d\n", ans);
return 0;
}
vijos - P1732能量採集 (状态转移)的更多相关文章
- BZOJ 2005 [Noi2010]能量採集 (容斥)
[Noi2010]能量採集 Time Limit: 10 Sec Memory Limit: 552 MB Submit: 2324 Solved: 1387 [id=2005"> ...
- BZOJ 2005 NOI2010 能量採集 数论+容斥原理
题目大意:给定n和m.求Σ(1<=i<=n)Σ(1<=j<=m)GCD(i,j)*2-1 i和j的限制不同,传统的线性筛法失效了.这里我们考虑容斥原理 令f[x]为GCD(i, ...
- mongoDB研究笔记:复制集故障转移机制
上面的介绍的数据同步(http://www.cnblogs.com/guoyuanwei/p/3293668.html)相当于传统数据库中的备份策略,mongoDB在此基础还有自动故障转移的功能.在复 ...
- 【分布式协调器】Paxos的工程实现-Cocklebur状态转移
集群中的主机经过选举过程由Looking状态变为了Leadering或Following状态.而这些状态之间转移的条件是什么呢?先来个直观的,上状态图. 图 4.1 Cocklebur选举过程中的状态 ...
- 开源 java CMS - FreeCMS2.3 Web页面信息採集
原文地址:http://javaz.cn/site/javaz/site_study/info/2015/23312.html 项目地址:http://www.freeteam.cn/ Web页面信息 ...
- [BLE]CC2640之ADC功能实现和供电电压的採集
一.开篇 Write programs that do one thing and do it well ~~~~~ 发现非常多人关于使用CC2640/CC2650的过程中比較难以应对的问题就是实现A ...
- 基于lucene的案例开发:纵横小说分布式採集
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/46812645 http://www.llwjy.com/blogdetail/9 ...
- 手机Android音视频採集与直播推送,实现单兵、移动监控类应用
最新手机採集推送直播监控以及EasyDarwin开源流媒体平台的版本号及代码: EasyDarwin 开源流媒体云平台:https://github.com/easydarwin EasyClient ...
- Rest(表述性状态转移)
本文的主要内容有: 1.了解Rest 2.了解RESTful WebService 3.使用SpringMvc实现RESTful ------------------------------我是华丽的 ...
随机推荐
- ajax 获取 json 数据乱码
打开json文本把json文件另存为 'utf-8' 编码格式的文件.....
- jQuery中focusin()和focus()、find()和children()的差别
jQuery中focus()和focusin().focus()和children()的差别 focus()和focusin() focus()和focusin()的差别在于focusin()支持事件 ...
- 基础数位DP小结
HDU 3555 Bomb dp[i][0] 表示含 i 位数的方案总和. sp[i][0] 表示对于位数为len 的 num 在区间[ 10^(i-1) , num/(10^(len-i)) ] 内 ...
- HDU5233
Gunner II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- 在GitHub上使用Hexo搭建静态博客
搭建静态博客须要一个前提是电脑上有安装git而且有github帐号,这个不懂能够看廖雪峰先生的git教程 1.下载nodejs.在官网上能够下载 2.使用git进入你新建的一个目录,输入命令 npm ...
- m_Orchestrate learning system---十六、如何快速在一堆字符图标中找到所需
m_Orchestrate learning system---十六.如何快速在一堆字符图标中找到所需 一.总结 一句话总结:find查找字符 比如说找teacher feedback 的图标,可以多 ...
- BZOJ 1101 莫比乌斯函数+分块
思路: 题目中的gcd(x,y)=d (x<=a,y<=b)可以转化成 求:gcd(x,y)=1 (1<=x<=a/d 1<=y<=b/d) 设 G(x,y)表示x ...
- css文字换行问题white-space:pre-line或者white-space:pre-wrap,解决word-wrap:break-word解决不了的
想让文字换行必须要写的那几个css样式就略过了.当一行文字是数字或字母时或者数字字母组合时会出现不换行局面,这时候加个word-wrap:break-word:就基本可以解决但是有种情况是它解决不了的 ...
- java代码递归部门结构树
组织所有部门树,以及条件查询部门树: /** * 组织部门树 * @return */ @Override public List<SxyBranchVO> findAllBranchTr ...
- Windows 10 Mobile 演示:插入耳机自动执行 APP
Windows Mobile 10 新特性:插入外部设备自动动作(如插入耳机执行 APP.打开小工具):另外可以找到最后一次使用设备地点和时间: http://www.tudou.com/progra ...