Gym - 100085G - GCD Guessing Game】的更多相关文章

原题链接 题意一个数字x在1-n之间,现在猜数字,每次猜一个数字a,告知gcd(x, a)的答案,问最坏情况下需要猜几次 分析 考虑素数.当猜的数为一组素数的乘积时,就可以把这些素数都猜出来.那么答案就是总共的组数.接下来就贪心构造每一组,每次取最后一个,尽量和小的合并. 代码 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; ; ; void getprime(…
传送门 题目大意 给定一个数N,现在又一个数x,在1~N之间,现在每次可以猜一个数a,返回gcd(x,a),问说最少猜几次可以确定x. 分析 这个题应该可以算是贪心,但是没人知道这样为啥是对的(雾),我们现在来感性认识一下,我们知道对于任意一个数都可以写p1e1p2e2 ... 的形式,所以我们在每一次询问都可以确定有些p是否存在,如果存在我们在来确定它对应的e,这样只需要两次,而我们感性思考可以猜出没猜到一个p并确认一个e用去两次却可以直接否定很多其它的p,所以猜的次数一定小于等于确认所有p的…
2632: [neerc2011]Gcd guessing game Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 144  Solved: 84[Submit][Status][Discuss] Description          给定一个数n ,有一个数x , ( 1<=x<=n ) 每次你可以猜在[1,n]中的数,假设是y,如果x==y,游戏结束,如果没猜中,则告诉你gcd(x,y),然后继续猜,直到猜中为止.          现…
http://codeforces.com/gym/100085/attachments 因为那个数字是一个质数,这样的猜的次数是最多的,所以至少是质数次. 但是如果需要猜2.3,那么可以直接猜6,也能达到猜2和3的效果. 想要猜7.11,那么可以猜77,会产生gcd = 7的有7.49.77,gcd = 11的有11.77 所以相当于把1--n的质数分组,每组的乘积不能超过n,求最小的组数. #include <bits/stdc++.h> #define IOS ios::sync_wit…
这个告诉gcd的操作实际上就是告诉一个因数是否选,最坏情况是1,判断掉所有因数才能选 然后肯定是用猜不重复质数积比较划算,问题就变成若干个质数,分成数量尽量小每组乘积<=n的若干组 从大质数开始,贪心的选尽量多的小质数和他乘起来,原理是反正大质数都要分进一组,能多带流多带 #include<iostream> #include<cstdio> using namespace std; const int N=10005; int n,p[N],tot,ans; bool v[…
G: 要你去才Paul的年龄,Paul的年龄在1~n之间,你每猜一个Paul会告诉你,你猜的这个数和他年龄的gcd,问在最坏情况下最少要猜多少次. 题解: 什么是最坏情况,我们直到如果他的年龄是1的话, 你需要猜一边全部素数.所以很明显这就是最坏情况, 如果p,q是素数,p*q<=n, 我们就可以猜p*q,一次就可以去掉两个素数了. 所以这一题就变成了将1~n的素数分成m部分, 每一部分的乘积要小于等于n. #include <iostream> #include <cstdio&…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2632 官方题解:http://neerc.ifmo.ru/archive/2011/neerc-2011-analysis.pdf 如果答案是1,就需要猜质数次:把质数分组,一组一组猜就行了.一组就是最大的一个和最小的几个匹配. 然而既不知道为什么这样是最坏情况,也不知道为什么最大的一个和最小的几个匹配一定最优. #include<cstdio> #include<cstring&…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2632 官方题解:http://neerc.ifmo.ru/archive/2011/neerc-2011-analysis.pdf 但还是不懂: 如果猜1是最坏情况,那么其它数怎么用更少的次数猜到? 为什么和大质数配对的小质数是连续的?比如 2*3 > 5,那么也有可能会跳着选啊? 代码如下: #include<cstdio> #include<cstring> #in…
大概想了想,还是有个记录比较好. 9/24 网络流一日游: 最大流:bzoj1711[Usaco2007 Open]Dining 拆点 BZOJ 3993 Sdoi2015 星际战争 二分 P.S.这是昨天晚上的 BZOJ 1189 HNOI2007 紧急疏散evacuate  二分 bzoj2095: [Poi2010]Bridges  二分.最大流判欧拉回路 bzoj3130: [Sdoi2013]费用流 二分最大边 最小割:BZOJ1001: [BeiJing2006]狼抓兔子(直接最小割…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
Guessing Game 题目连接: http://codeforces.com/gym/100015/attachments Description Jaehyun has two lists of integers, namely a1,...,aN and b1,...,bM.Je!rey wants to know what these numbers are, but Jaehyun won't tell him the numbers directly. So, Je!rey as…
Gym 100096D Guessing game 题面 Problem Description Byteman is playing a following game with Bitman. Bitman writes down some 1 000 000 000-element sequence of zeros and ones. Byteman's task is to guess the sequence that Bitman created. He can achieve th…
答案只有n - 1种暴举即可,对于每种,gcd是一那踩雷稳了,否则看雷的分布有没有把模余占满. const int maxn = 1e5 + 5; int n, ans; char str[maxn]; vector<int> pos; bool vis[maxn], yes[maxn]; bool ok(int t) { if (vis[t]) return yes[t]; vis[t] = true; set<int> s; for (int i : pos) { s.inse…
题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点时,我们对gcd相同的只保留一个,那就是左端点最小的那个,只有这样才能保证是最大,然后删掉没用的. UVaLive上的数据有问题,比赛时怎么也交不过,后来去别的oj交就过了. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000&qu…
题面 题意:给你 abcd(1e7),求a<=x<=b,c<=y<=d的,gcd(x,y)=1的数量 题解:经典题目,求从1的到n中选x,从1到m中选y的,gcd(x,y)=k的可以看hdu1695 ask(x,y)表示从1到n中选n,从1到m中选y的话 ans=ask(b,d)-ask(b,c-1)-ask(a-1,d)+ask(a-1,c-1) #include<bits/stdc++.h> using namespace std; typedef long lon…
题意:给你三个1~n的排列a,b,c,问你在 (i,j)(1<=i<=n,1<=j<=n,i≠j),有多少个有序实数对(i,j)满足在三个排列中,i都在j的前面. 暴力求的话是三维偏序,相对比较困难.但是我们可以用一些简单的方法. 设在a中i在j前面的有序实数对数为A,b中为B,c中为C.(其实显然A=B=C=n*(n-1)/2) 要求的即为A∩B∩C. 利用容斥原理A+B+C-A∩B-A∩C-B∩C+A∩B∩C=A∪B∪C ①,以及Ω-A∪B∪C=A∩B∩C ②可容易求得.(显然…
Problem C. Painting CottagesTime Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The new cottage settlement is organized near the capital of Flatland. The construction company that is building the settl…
Problem C. Painting CottagesTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The new cottage settlement is organized near the capital of Flatland. The construction company that is building the sett…
B. New Job time limit per test:1 second memory limit per test:64 megabytes input:standard input output:standard output This is the first day for you at your new job and your boss asks you to copy some files from one computer to other computers in an…
题目链接:http://codeforces.com/gym/101982/attachments 题目大意:有区间[a,b]和区间[c,d],求gcd(x,y)=1,其中x属于[a,b],y属于[c,d],求这样的x,y有多少对. 解题思路: 第一种反演思路: 把下界变换一下 代码: #include<iostream> #include<cstdio> using namespace std; typedef long long ll; ; ll a,b,c,d,mu[maxn…
这场题极其简单 Solved 19 / 19 A Gym 102035A N integers 略 Solved 10 / 33 B Gym 102035B Mahmoud the Thief 用map记录所有数%m的出现次数,然后按顺序模拟,如果不同模数的种类数只剩下一种,那么就结束 Solved 2 / 14 C Gym 102035C Apple Shops 二分最大的价格 Solved 18 / 31 D Gym 102035D Coach Ayoub 略 Solved 15 / 62…
题目链接:https://codeforces.com/gym/101982/attachments 贴一张图吧: 题目意思就是给出四个数字,a,b,c,d,分别代表两个区间[a,b],[c,d],从这两个区间里面分别拿一个数字组成(x,y),问x和y互质的组合有多少种. 这道题目好像要用莫比乌斯反演,但是目前没有了解过这个知识点,后续会补上,我用的是打表+容斥定理做的,相比于上一种方法,耗费的时间可能会多很多.我亲测是600到800ms,所以还是很有必要学莫比乌斯反演的. 接下来讲我的思路:两…
题目链接:http://codeforces.com/gym/101873/problem/G 题意: 在点阵上,给出 $N$ 个点的坐标(全部都是在格点上),将它们按顺序连接可以构成一个多边形,求该多边形内包含的格点的数目. 题解: 首先,根据皮克定理 $S = a + \frac{b}{2} - 1$,其中 $S$ 是多边形面积,$a$ 是多边形内部格点数目,$b$ 是多边形边界上的格点数目. 那么,我们只要求出 $S$ 和 $b$,就很好求得 $a$ 了: 1.对于两端点 $(x_1,y_…
Gym 101933 B. Baby Bites水题直接模拟即可 #include <cstdio> #include <cstring> #include <queue> #include <cmath> #include <algorithm> #include <set> #include <iostream> #include <map> #include <stack> #include…
题目链接 Alternating Strings II 题意是指给出一个长度为n的01串,和一个整数k,要求将这个01串划分为很多子串(切很多刀),使得每个子串长度不超过k,且每个字串不是01交替出现的串(例如01, 10, 101, 010, 101010这些都是01交替出现的串),求最少需要切多少次 令F[i]代表前i个数所需要切的最少的刀数(从1开始计数),那么有 F[i]  = min{F[j] | |j + 1, i| <= k 且 [j, i]这个子串不是01交替出现的串} + 1…
gym 100952 A #include <iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<map> #include<queue> #include<stack> #include<vector> #include<set> using namespac…
思路: 前两题题面相同,代码也相同,就只贴一题的题面了.这三题的意思都是求A^X==B(mod P),P可以不是素数,EXBSGS板子题. SPOJ3105题目链接:https://www.spoj.com/problems/MOD/ POJ3243题目链接:http://poj.org/problem?id=3243 题目: 代码实现如下: #include <set> #include <map> #include <queue> #include <stac…
http://codeforces.com/gym/100240 J [分析] 这题我搞了好久才搞出样例的11.76....[期望没学好 然后好不容易弄成分数形式.然后我‘+’没打..[于是爆0... 好桑心.. 对于x^2这样的期望,是不能直接求x的期望然后平方的! 为什么呢?因为意义就是不对的,你的概率有可能乘了两次什么的... 我的方法是: 先把每天分离出来,对于某一天,假设你前i部番的x^2的期望求了出来,然后新的一部翻在这天放的概率是p, 新的答案就是$x^{2}*(1-p)+p*(x…
Kids in a Friendly Class 题目连接: http://codeforces.com/gym/100269/attachments Description Kevin resembles his class in primary school. There were girls and boys in his class. Some of them were friends, some were not. But if one person considered anothe…
layout: post title: (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017) author: "luowentaoaa" catalog: true tags: mathjax: true - codeforces 传送门 付队! 许老师! B.Buildings (polya定理) 题意 B:给你m面墙,每面墙是n*n的格子,你有c种颜色,问你有多少种涂色方案.用po…