POJ 1091 跳蚤
跳蚤
This problem will be judged on PKU. Original ID: 1091
64-bit integer IO format: %lld Java class name: Main
比如当N=2,M=18时,持有卡片(10, 15, 18)的跳蚤,就可以完成任务:他可以先向左跳10个单位长度,然后再连向左跳3次,每次15个单位长度,最后再向右连跳3次,每次18个单位长度。而持有卡片(12, 15, 18)的跳蚤,则怎么也不可能跳到距他左边一个单位长度的地方。
当确定N和M后,显然一共有M^N张不同的卡片。现在的问题是,在这所有的卡片中,有多少张可以完成任务。
Input
Output
Sample Input
2 4
Sample Output
12
Hint
(1, 1, 4), (1, 2, 4), (1, 3, 4), (1, 4, 4), (2, 1, 4), (2, 3, 4),
(3, 1, 4), (3, 2, 4), (3, 3, 4), (3, 4, 4), (4, 1, 4), (4, 3, 4)
Source
1 #include <iostream> 2 using namespace std; 3 typedef long long LL; 4 const int maxn = 50; 5 LL p[maxn],n,m,ret,tot; 6 LL quickPow(LL base,LL index){ 7 LL ret = 1; 8 while(index){ 9 if(index&1) ret *= base; 10 index >>= 1; 11 base *= base; 12 } 13 return ret; 14 } 15 void init(LL x){ 16 tot = 0; 17 for(int i = 2; i*i <= x; ++i){ 18 if(x%i == 0){ 19 p[tot++] = i; 20 while(x%i == 0) x /= i; 21 } 22 } 23 if(x > 1) p[tot++] = x; 24 } 25 int main(){ 26 ios::sync_with_stdio(false); 27 while(cin>>n>>m){ 28 init(m); 29 for(int i = 1; i < (1<<tot); ++i){ 30 int cnt = 0; 31 LL tmp = 1; 32 for(int j = 0; j < tot; ++j){ 33 if((i>>j)&1){ 34 cnt++; 35 tmp *= p[j]; 36 } 37 } 38 if(cnt&1) ret += quickPow(m/tmp,n); 39 else ret -= quickPow(m/tmp,n); 40 } 41 cout<<(quickPow(m,n) - ret)<<endl; 42 } 43 return 0; 44 }
View Code
转载于:https://www.cnblogs.com/crackpotisback/p/4850708.html
POJ 1091 跳蚤相关推荐
- POJ 1091 跳蚤 【容斥原理】+模板
Description Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+1个 ...
- POJ - 1091 跳蚤(容斥原理+数论)
题目链接:点击查看 题目大意:中文题意,不多赘述 题目分析:根据题目的意思,其实只需要让所有数的最大公约数为1就可以满足条件,好像是用到了欧几里得的一些知识,奈何我的数论比较菜,也不会证明,就直接用网 ...
- POJ 1091(数论)
题目大意是给定两个整数n和m,求出长度为n+1满足条件的数列data的个数,数列的要求下: 1)1<=data[i]<=m,for1<=i<=n 2)data[n+1]=m; ...
- 信息学竞赛中的数学知识 --- 容斥原理
C++基础数论-----容斥原理 C++基础数论-----容斥原理_C2020lax的博客-CSDN博客_容斥原理c++ C++数论容斥原理----无关的元素 C++数论容斥原理----无关的元素 - ...
- POJ前面的题目算法思路【转】
1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...
- POJ 超详细分类
POJ 各题算法 1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 ...
- [kuangbin]各种各样的题单
[kuangbin]各种各样的题单 专题1 简单搜索 POJ 1321 POJ 2251 POJ 3278 POJ 3279 POJ 1426 POJ 3126 POJ 3087 POJ 3414 F ...
- ACM组合数学题目列表
基本组合计数 HDU 1028 Ignatius and the Princess III 整数划分 HIT 1402 整数划分问题 多种整数划分 置换群 PKU 2369 求置换的周期 1026 求 ...
- 我花了三个小时写了一道题的六千字题解....(POJ 2888 Magic Bracelet)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 前置知识:小学生都能看懂的群论从入门到升天教程 <群论全家桶> 一道简单的题目 Probl ...
最新文章
- java怎么制作放置游戏_从零开始实现放置游戏(八)——实现后台管理系统(6)代码重构...
- python bashplotlib_Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib
- C#代码创建3D模型
- Rancher2.0中邮件通知的设置
- mysql删除数据不会减少存储占用_Mysql单文件存储删除数据文件容量不会减少的bug与解决方法...
- 在matlab中怎么录制音频_怎么录制淘宝页面中的视频?简单方法,轻松搞定
- 用Java创建自己的AOP
- [Go语言]从Docker源码学习Go——init()方法和identifier首字母大小写区分
- 电脑向linux服务器传输文件,windows如何通过ssh工具向linux服务器上传和下载文件?...
- Archiva 2.2.3 安装运行的时候出现协议版本错误
- 2021抚顺高考成绩查询,2021年抚顺高考成绩排名及成绩公布时间什么时候出来
- 《Spring Recipes》第二章笔记:Customizing Bean Initiali...
- 电商宝:做最懂电商卖家的财务管理“小秘书”
- 一个QQ盗号木马是这样诞生的(C#)
- C语言学习笔记《带你学C带你飞》P41-P61
- c语言求解一元三次方程(二分法和公式法)
- 微信小程序和微信H5有什么区别?
- error2448C语言,VS 报错 error C2448: “main”: 函数样式初始值设定项类似函数定义 问题的解决方法...
- STM32物联网项目-ADC采集实验板板温度(NTC热敏电阻)
- JavaScript高级程序设计(第4版)(红宝书)的学习笔记
热门文章
- android手写简单mvp,[webpack]手写一个mvp版本的webpack
- 高和父元素的高一致_首次:低温熔盐法合成菊花状三维高熵硼化物纳米花 (华南理工大学褚衍辉课题组最新研究成果)...
- python创建子类_Python线程创建子类?
- 有一种惨:人还在,数据没了...
- 如何选择最优路径完成云原生上云?听这场阿里云特别分享【云原生技术与最佳实践】
- 济南电子机械工程学校计算机专业班主任,济南电子机械工程学校庆祝2020年教师节暨表彰大会隆重举行...
- python进行linux编程,Python之函数进阶
- 导购提成怎么算_only导购工资提成怎么算标准
- python牛顿法求立方根_【华为机试】求解立方根(牛顿迭代法)
- rapter求n的阶乘流程图_RAPTOR程序设计例题参考答案