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…