Problem Description
There are m stones lying on a circle, and n frogs are jumping over them.
The stones are numbered from 0 to m−1 and the frogs are numbered from 1 to n. The i-th frog can jump over exactly ai stones in a single step, which means from stone j mod m to stone (j+ai) mod m (since all stones lie on a circle).

All frogs start their jump at stone 0,
then each of them can jump as many steps as he wants. A frog will
occupy a stone when he reach it, and he will keep jumping to occupy as
much stones as possible. A stone is still considered ``occupied" after a
frog jumped away.
They would like to know which stones can be
occupied by at least one of them. Since there may be too many stones,
the frogs only want to know the sum of those stones' identifiers.
 
Input
There are multiple test cases (no more than 20), and the first line contains an integer t,
meaning the total number of test cases.

For each test case, the first line contains two positive integer n and m - the number of frogs and stones respectively (1≤n≤104, 1≤m≤109).

The second line contains n integers a1,a2,⋯,an, where ai denotes step length of the i-th frog (1≤ai≤109).
 
Output
For each test case, you should print first the identifier of the test case and then the sum of all occupied stones' identifiers.
 
Sample Input
3
2 12
9 10
3 60
22 33 66
9 96
81 40 48 32 64 16 96 42 72
 
Sample Output
Case #1: 42
Case #2: 1170
Case #3: 1872
 
Source
 
这个问题根据我的思想就是,先把所有的都算出来然后根据容斥原理就可以做出来了,我们知道这个 走的路都是K*gcd(a[i],m);
我们可以这样子推道一下,假设m%a[i]==0  那么这个青蛙走的距离就是a[i]的倍数,我们可以假设一下啊,这是走的最优解,
要是  gcd(a[i],m)==1这样子的话就是相当于a[i]=a[i]*1; 这样子的话我们可以把所有的解都能求出来了。
综上我们知道所有的结果就是k*gcd(a[i],m);
 
要是m小一点的话,我们就能枚举m得到所有的解,但是现在的话根本就是不可以的。首先我是这样子想的就是要是gcd(a[i],m)==1的时候这个时候就是
0--m-1等差求和,其他的时候就是枚举m的所有
 
 
机智的我打了一个表,然后发现1e9以内的因子,不过1e3个好像最多的1024吧,,,看到这里真的是太高兴了,,,,
OK现在我就是开始枚举因子,然后感觉不用什么容斥定理就可以AC了,感觉随便的加加减减就被被人称为容斥定理,但是我感觉真的就是加加减减。
 
今天下午好好的想一下这个问题,然后就是再做2个问题。。。
我们假设  3 6     和  2  4   6  我们我们算完2再算3的时候发现6倍多算了一次,然后我们再减去就行了,我还是想简单了,我以为只要把6和4,6删去就行了,但是删去的过程中还是多计算了,然后我感还是套用结论比较好。。
 
 
 
 
 
 
 
 
 

Frogs的更多相关文章

  1. POJ 1659 Frogs' Neighborhood(Havel-Hakimi定理)

    题目链接: 传送门 Frogs' Neighborhood Time Limit: 5000MS     Memory Limit: 10000K Description 未名湖附近共有N个大小湖泊L ...

  2. CF# Educational Codeforces Round 3 F. Frogs and mosquitoes

    F. Frogs and mosquitoes time limit per test 2 seconds memory limit per test 512 megabytes input stan ...

  3. Frogs' Neighborhood

    Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 7920   Accepted: 33 ...

  4. HDU 5514 Frogs 容斥定理

    Frogs Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5514 De ...

  5. poj 1659 Frogs' Neighborhood (DFS)

    http://poj.org/problem?id=1659 Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total S ...

  6. poj 1659 Frogs' Neighborhood (贪心 + 判断度数序列是否可图)

    Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 6076   Accepted: 26 ...

  7. codeforces 609F. Frogs and mosquitoes 二分+线段树

    题目链接 F. Frogs and mosquitoes time limit per test 2 seconds memory limit per test 512 megabytes input ...

  8. poj 1659 Frogs' Neighborhood (度序列)

    Frogs' Neighborhood Time Limit: 5000MS   Memory Limit: 10000K Total Submissions: 7295   Accepted: 31 ...

  9. POJ 1659 Frogs' Neighborhood(度序列组成)

    意甲冠军  中国 依据Havel-Hakimi定理构图即可咯  先把顶点按度数从大到小排序  可图的话  度数大的顶点与它后面的度数个顶点相连肯定是满足的  出现了-1就说明不可图了 #include ...

随机推荐

  1. Android.mk文件详解(转)

    源:Android.mk文件详解 从对Makefile一无所知开始,折腾了一个多星期,终于对Android.mk有了一个全面些的了解.了解了标准的Makefile后,发现Android.mk其实是把真 ...

  2. iOS中UITextField 使用全面解析

    //初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 13 ...

  3. Hibernate 中对象关系映射(ObjectRelationMapping)

    1.什么是对象关系映射? 解析:对象-关系映射(Object Relational Mapping,简称ORM,对象关系映射)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说, ...

  4. 代码中使用bitmap资源并加载到控件上

    1.从res/drawable/XX.jpg里引用图片资源: 1. Resources res = getResources(); Bitmap inDrawable= BitmapFactory.d ...

  5. 使用django-compressor压缩静态文件

    Reference:http://blog.csdn.net/permike/article/details/52355095 在网站开发阶段,对于静态资源文件比如JS,CSS等文件都是未经过压缩合并 ...

  6. 为mysql 表重新设置自增的主键id

    1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2,添加新主键字段: ALTER TABLE `table_name` ADD `id` INT NOT N ...

  7. 详解Grunt插件之LiveReload实现页面自动刷新(两种方案)

    http://www.jb51.net/article/70415.htm    含Grunt系列教程 这篇文章主要通过两种方案详解Grunt插件之LiveReload实现页面自动刷新,需要的朋友可以 ...

  8. box-sizing

    Over the generations, people realized that math is not fun, so a new CSS property called box-sizing ...

  9. centos服务器设置代理上网的方法

    这里以centos7.0为例,记录代理服务器设置过程: 1.全局的代理设置: vi /etc/profile 添加下面内容 http_proxy = http://username:password@ ...

  10. PHP正则表达式验证是否含有中文

    判断是否 有中文. if (preg_match("/[\x7f-\xff]/", $string)) { echo "true"; }else{ echo & ...