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 ------------------------------我是华丽的 ...
随机推荐
- call to OpenGL ES API with no current context 和Fatal signal 11
近日在用cocos2dx3.4的时候使用了JNI调用,发现一个现象 当不使用jni的时候全然正常.使用了jni后回去的全部文字都变成黑块,而且有概率程序崩溃.附带出了两个log call to Ope ...
- Java虚拟机的类载入机制
Java虚拟机类载入过程是把Class类文件载入到内存.并对Class文件里的数据进行校验.转换解析和初始化,终于形成能够被虚拟机直接使用的java类型的过程. 在载入阶段,java虚拟机须要完毕下面 ...
- javascript系列-class7.Date对象
1.对象 什么是对象? 对象的类型是Object. JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... javaScript中万事万物皆对象 用官方 ...
- [jzoj 4668] [NOIP2016提高A组模拟7.19] 腐败 解题报告(质数分类+慢速乘)
题目链接: http://172.16.0.132/senior/#main/show/4668 题目: 题解: 考虑把A数组里的每个元素分解质因数,对于每个质因数开一个vector存一下包含这个质因 ...
- Array数组的排序与二分查字法
import java.util.Arrays; public class sort { public static void main(String[] args) { // TODO 自动生成的方 ...
- shiro什么时候会进入doGetAuthorizationInfo(PrincipalCollection principals)
shiro会进入授权方法一共有三种情况!(注解.标签.代码) 1.subject.hasRole(“admin”) 或 subject.isPermitted(“admin”):自己去调用这个是否有什 ...
- 模仿百度首页“元宵节汤圆”动图(js的定时任务:setInterval)
模仿百度首页“元宵节汤圆”动图:(js的定时任务:setInterval) 原理:需要一张切图,通过不断定位使得图片就像一帧一帧的图片在播放从而形成了动画 效果图: 切图地址: https://ss1 ...
- select2多选
在TCX_1710项目中的拒绝代码配置页面可以选择多个拒绝字段,效果图如下 代码中需要注意的有以下地方:图1为提交保存时对多选数据的获取,图2为修改是对多选数据的回显 对于多选框宽度太窄的问题,可以参 ...
- WPF XAML
xmlns 在xml中专门用于声明名字控件, xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 是 ...
- MySQL内置函数uuid和uuid_short
MySQL的uuid这个函数.简要介绍一下. 用法 简单看到,这个值,每次执行都是不同的. 生成规则 第1 2 3 段是与时间有关的. time_low.time_mid.time_high_and_ ...