LUOGU P1414 又是毕业季II】的更多相关文章

题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要…
P1414 又是毕业季II:https://www.luogu.org/problemnew/show/P1414 题意: 给定一个长度为n的数列.要求输出n个数字,每个数字代表从给定数列中最合理地取出 i 个数后的最大公约数. 思路: 枚举因子,复杂度为n*(sqrt(max)),若一个因子x出现了k次,那么说明从数列中取出 k 个数至少可以得到最大公约数x. * 1. 求出每个因数出现的次数. * 2. 对于每个次数记录最大的因数. * 3. 根据f[k]=max(f[k],f[k+1])逆…
P1372 又是毕业季I 题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 为了把毕业晚会办得更好,老师想要挑出默契程度最大的k个人参与毕业晚会彩排.可是如何挑呢?老师列出全班同学的号数1,2,……,n,并且相信k个人的默契程度便是他们的最大公约数(这不是迷信哦~).这可难为了他,请你帮帮忙吧! PS:一个数的最大公…
题目链接 https://www.luogu.org/problemnew/show/P1414 题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度…
https://www.luogu.org/problemnew/show/P1414 以后这种gcd的还是尽可能往分解那里想一下. 先把每个数分解,他的所有因子都会cnt+1. 然后从最大的可能因子开始往下走,每次把比这个cnt小或等的ans全部更新. 这样明显会超,但是很多更新是没必要的,因为我们是从最大的开始枚举的,所以更新完之后没有人可以再更新他们了. 所以复杂度是每个数求因数分解,大概是1e7,然后扫一次因子也只扫一次ans,忽略不计. #include<bits/stdc++.h>…
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要知道所有情…
题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要…
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要知道所有情…
题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要知道所有情况下能达到的最大默契程度是多少.这下子更麻烦了,还是交给你吧~ PS:一个数的最大公约数即本身. 输入输出格式 输入格式: 第一行一个正整数n. 第二行为n个空格隔开的正整数,表示每个学生的能力值. 输出格式: 总共n行,…
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要知道所有情…
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要知道所有情…
这道题其实不难,但是我想复杂了 我想的是把每个数质因数分解,然后每次就枚举每个质因数 来求最小公倍数. 然后想了想这样复杂度将会非常的大,肯定超时 然后看了题解发现不需要质因数分解,直接存因数的个数就好了 c[i]表示i这个因数出现的次数. 然后因为当k越小的时候答案越大(严格来说是大于等于),这是显而易见的,当数少了 之后对最大公因数的限制就越少. 所以我们可以把因数从大到小枚举,来求答案. #include<cstdio> #include<cmath> #include<…
感觉好水呀~ Code: #include <cstdio> #include <algorithm> #define N 1000005 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int sum[N],vis[N],Mx[N],val[N]; int main() { int i,j,n; // setIO("input"); scan…
[Luogu1414]又是毕业季II(数论) 题面 题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为…
问题描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不知道.老师想要知道所有情况下能达到的最大默契程度是多少.这下子更麻烦了,还是交给你吧~ PS:一个数的最大公约数即本身. 输入格式: 第一行一个正整数n. 第二行为n个空格隔开的正整数,表示每个学生的能力值. 输出格式: 总共n行,第i行为k=i…
一个1到n序列,合理排序逆序对数要求是m,而且字典序要求最小: 这个题,因为数字只能用一次,所以我们可以知道什么位置放什么数逆序对的个数会增加或减少多少: 先求出最多能产生的数量,每次先输出最小的数,用总数减去减少的逆序对数: 如果不够的时候就要用大数排在前面: vector,记得输出一个删一个: #include<cstdio> #include<vector> #include<cstring> #include<algorithm> using nam…
题目传送门 又是毕业季 题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约数)最大.但因为节目太多了,而且每个节目需要的人数又不…
题目 思想: 首先这个题必定是一个数学题,肯定不是一个一个枚举得到解,这样肯定会T,所以我们就应该想一些别的方法,. 分析: 比如,答案,一定是递减的,因为该答案所满足的条件肯定是越来越苛刻的,所以我们是不是可以想一些其他的特殊方法,来达到我们的目的,然后让我们摆脱gcd的束缚,来联想一下gcd的一些性质,比如gcd一定是这k个数中的最大公因子,这是定义. 我们可以先把这几个数的所有因子全枚举出来, 并统计他们所出现的个数. 这里我们可以知道,只有该因子出现的次数大于题目中的k时,因为每个因子在…
题目链接 \(solution\) 暴力求每个数有多少个倍数,从大到小,数\(i\)的倍数有\(f_i\)个,那么选\(1\)~\(f_i\)个同学的答案可以为\(i\),取第一次更新的答案最大 #include<iostream> #include<cstring> #include<cstdio> using namespace std; const int MAXN=1000010; int n,a[MAXN],f[MAXN],ans[MAXN]; int Max…
洛谷P1372 又是毕业季I 对于答案a,k*a是最接近n的,即a=n/k(下取整),所以直接输n/k即可. 我的方法是 二分查找 n/k真的没有想到唉. 我找的最大公约数,如果当前的mid对应的个数比k大,就往大了找,否则往小里找,对于边界问题,要加一些特判. #include<bits/stdc++.h> using namespace std; int n,k; bool p(int x) { int i; ;i<=n&&i*x<=n;i++){ } >…
又是毕业季2 n/k; 又是毕业季2 一开始很容易想到枚举n个数取k个的所有组合,然后分别用辗转相除法求最大公约数,但是复杂度明显不符合要求,于是必须换一种思路. 我们想到,k个数的公约数含义就是这k个数均含有某个因数,如果我们把所有数的因数全部求出来,发现有k个数均含有某个因数,那么这个数必然是这k个数的公约数.其中找出最大的就是它们的最大公约数.但是要如何高效的做到这点呢?考虑到对于k=1,2……,n都要求出,我们可以这么做: 1. 求出每个因数出现的次数. 2. 对于每个次数记录最大的因数…
P1372 又是毕业季I 题意:在1-n中找到k个数,使得这k个数的最大公因数最大: 思路,题解: 因为两个数成倍数关系时,它们的最大公因数是两数中的较小数,也就是相对来说最大公因数较大 返回题目,这k个数其实就是:x*1,x*2......x*k,及x的1~k倍,但必须保证x*k小于n,在上述条件下,能知道,符合条件的最大的x就是答案,为了找出最大的 x,必须使x*k尽量接近n,因为c++的整数除法有自动取整的功能,所以在所有情况下,n/k都是最终答案:(膜 #include <cstdio>…
luogu p2622关灯问题II 题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯--按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时候,把它关上,否则不管:如果为-1的话,如果这盏灯是关的,那么把它打开,否则也不管:如果是0,无论这灯是否开,都不管. 现在这些灯都是开的,给出所有开关对所有灯的控制效果,求问最少要按几下按钮才能全部关掉. 输入输出格式 输入格式: 前两行两个数,n m 接下来m…
可能所有的数论题都是这样玄学.... 题目链接:https://www.luogu.org/problemnew/show/P1372 这道题通过暴力的枚举可以发现是不可做的(当然我也不会做) 然后就有了这样一个思路: 这道题就是求:从1~n中取k个数,使这k个数的最大公约数最大 因为两个数成倍数关系时,它们的最大公因数是两数中的较小数,也就是相对来说最大公因数较大(这与我们要求的东西相符) 返回题目,这k个数其实就是:x*1,x*2......x*k,即x的1~k倍,但必须保证x*k小于n.所…
题目:https://www.luogu.org/problemnew/show/P1372 题意: 在1~n之中找k个数,使得他们的最大公因数最大. 思路: 假设ans是答案,说明选择的k个数分别是ans, 2ans, 3ans,...,kans 如果kans<n,那么这k个数肯定是可以取到的. 要找到最大的ans,就只用找到小于且最接近n/ans的整数 #include<cstdio> #include<cstdlib> #include<map> #incl…
https://www.luogu.org/problem/P1372 #include<bits/stdc++.h> using namespace std; long long n,k; int main() { cin>>n>>k; cout<<n/k; ; } /*从1~n中取k个数,使这k个数的最大公约数最大 当两个数成倍数关系的时候,他们的最大公约数就是较小的数字 在本题中,k个数字其实就是,x*1,x*2......x*k,及x的1~k倍,但必…
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 为了把毕业晚会办得更好,老师想要挑出默契程度最大的k个人参与毕业晚会彩排.可是如何挑呢?老师列出全班同学的号数1,2,……,n,并且相信k个人的默契程度便是他们的最大公约数(这不是迷信哦~).这可难为了他,请你帮帮忙吧! PS:一个数的最大公约数即本身. 输入输出格式…
题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 为了把毕业晚会办得更好,老师想要挑出默契程度最大的k个人参与毕业晚会彩排.可是如何挑呢?老师列出全班同学的号数1,2,--,n,并且相信k个人的默契程度便是他们的最大公约数(这不是迷信哦~).这可难为了他,请你帮帮忙吧! PS:一个数的最大公约数即本身. 输…
题目描述 为了把毕业晚会办得更好,老师想要挑出默契程度最大的k个人参与毕业晚会彩排.可是如何挑呢?老师列出全班同学的号数1,2,……,n,并且相信k个人的默契程度便是他们的最大公约数(这不是迷信哦~).这可难为了他,请你帮帮忙吧! PS:一个数的最大公约数即本身. 输入输出格式 输入格式: 两个空格分开的正整数n和k.(n>=k>=1) 输出格式: 一个整数,为最大的默契值. 输入输出样例 输入样例#1: 复制 4 2 输出样例#1: 复制 2 说明 [题目来源] lzn原创 [数据范围] 对…
题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定是一生最难忘的时刻! 题目描述 为了把毕业晚会办得更好,老师想要挑出默契程度最大的k个人参与毕业晚会彩排.可是如何挑呢?老师列出全班同学的号数1,2,……,n,并且相信k个人的默契程度便是他们的最大公约数(这不是迷信哦~).这可难为了他,请你帮帮忙吧! PS:一个数的最大公约数即本身. 输入输出格式…