hdu5514Frogs 容斥
//n只青蛙,每只青蛙每一步跳的步数为a[i]
//从0点开始,在一个坐标为0...m-1的环中跳
//青蛙跳的次数没有限制
//问所有的青蛙中任意一只青蛙能够达到的所有的
//坐标之和
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std ;
const int maxn = 1e4+10 ;
typedef long long ll ;
int a[maxn] ;
int vis[maxn] ;
int num[maxn] ;
int b[maxn];
int gcd(int aa , int bb)
{if(bb==0)return aa ;return gcd(bb , aa%bb) ;
}
int init(int m)
{int len = 0 ;for(int i = 1;i <= sqrt(m);i++)if(m%i == 0){b[len++] = i ;if(i*i != m)b[len++] = m/i ;}return len ;
}
int main()
{// freopen("d:\\in.txt" , "r" , stdin) ;int t ; int cas = 0 ;scanf("%d" , &t) ;while(t--){int n ; int m ;scanf("%d%d" , &n,&m) ;memset(vis , 0 , sizeof(vis)) ;memset(num , 0 , sizeof(num)) ;int len = init(m) ;sort(b,b+len) ;for(int i = 1;i <= n;i++){scanf("%d" , &a[i]) ;int pp = gcd(a[i] , m) ;int pos = lower_bound(b,b+len,pp)-b ;for(int i = pos;i < len;i++)if(b[i]%pp == 0){vis[i] = 1 ;}}ll ans = 0 ;for(int i = 0;i < len;i++){ll tmp ;if((tmp = vis[i]-num[i])!=0){ans += tmp*b[i]*((m-1)/b[i])*((m-1)/b[i]+1)/2 ;for(int j = i;j < len;j++)if(b[j]%b[i] == 0)num[j] += tmp ;}}printf("Case #%d: %lld\n" , ++cas , ans) ;}return 0 ;
}
hdu5514Frogs 容斥相关推荐
- Leetcode 552.学生出勤记录‖ 动态规划+容斥
题目链接:传送门 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤 'L':Late,迟到 'P':P ...
- 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings
题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...
- Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...
- P3175 [HAOI2015]按位或(Min - Max容斥,FMT,概率期望,全网最清晰的题解!)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P3175 Prob ...
- hdu1695(莫比乌斯)或欧拉函数+容斥
题意:求1-b和1-d之内各选一个数组成数对.问最大公约数为k的数对有多少个,数对是有序的.(b,d,k<=100000) 解法1: 这个能够简化成1-b/k 和1-d/k 的互质有序数对的个数 ...
- hdu 1796 How many integers can you find 容斥定理
一开始看 这里 这个文章博主写得很好. 当举容斥定理的所谓 奇数为负 偶数为正的时候. 我直接就认为是 a*b 了.实际上是lcm(a,b). 由于博文中的因子都是互素的(素数之间).所以lcm(a, ...
- 【GDOI2016模拟3.16】幂(容斥 + 模型复杂转化)
[GDOI2016模拟3.16]幂 \(X\in[1,A],Y\in[1,B]\),问:\(x^y\)的不用取值个数. \(A,B\)都是\(10^9\)级别. 然后我们开搞. 首先,假设一个合法的\ ...
- BZOJ2301:[HAOI2011]Problem b(莫比乌斯反演,容斥)
Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...
- HDU 6052 To my boyfriend(容斥+单调栈)
题意:对于一个n*m的方格,每个格子中都包含一种颜色,求出任意一个矩形包含不同颜色的期望. 思路: 啊啊啊啊啊,补了两天,总算A了这道题了,简直石乐志,前面的容斥还比较好写,后面的那个>13那个 ...
最新文章
- Udacity机器人软件工程师课程笔记(十三)-运动学-机械手介绍及分类
- R语言ggplot2可视化:使用gganimate包和gapminder包为生成的动画文件gif设置尺寸、分辨率
- [RabbitMQ]RabbitMQ深入理解(一)进阶/管理/配置
- SQL注入的原理解说,挺好!
- 多媒体计算机属于哪种教学,多媒体计算机属于哪种教学媒体(???)。
- 2018.2.28(延迟加载和缓存)
- mysql修改表的结构_MySQL修改表结构
- Android上传文件至服务器(转)
- 拳击 武术java父类,拳击是一种很有力量的武术类型
- 在线求CR,你觉得我这段Java代码还有优化的空间吗?
- http accept字段有用吗_http协议(六)报文首部
- Android中文乱码彻底解决
- 腐蚀rust图纸怎么找_怎么解决变压器油滤油机的温差效应?在这里可以得到解决...
- 排序算法python实现_用Python,Java和C / C ++实现的选择排序算法
- 基础晶体管放大电路设计七步走
- iptables高性能前端优化-无压力配置1w+条规则
- 【汇编】更灵活的定位内存地址方式——and,or命令、SI、DI变址寄存器、直接寻址[idata]、寄存器间接寻址[bx]、寄存器相对寻址[bx+idata]、基址变址寻址、相对基址变址寻址
- C++——打印乘法口诀表
- java正则匹配英文_匹配英文句子的正则表达式
- Java面试题上篇(转)