2016 ACM-ICPC Asia Regional Changchun 1006 Harmonic Value Description(逻辑思维)
2017-09-12 22:22
357 查看
Harmonic Value Description
题意:1~n的全排列中谐波值严格第k小的排列为多少,排列p1,p2,…,pn的谐波值定义为:
由于p1,p2,…,pn是1~n全排列中的一种,可想而知的是,严格第1小的排列必定是那种任意相邻两个数最大公约数为1的排列。例如排列1,2,3,…,n。
此外,1~n这n个数还是很奇妙的,我们可以构造出任意约数为k的对。当然,前提是k<=n/2,而题目的要求正好是2k<=n。
故谐波值严格第k小的排列可以是存在一对相邻两个数最大公约数为k,其余任意相邻两个数最大公约数为1的排列。
故最方便的构造方法(与样例输出不同,但两者谐波值时一样的)是将2k和k提取出来放在排列最前面,然后构造相邻两数最大公约数为1的排列
即下述这种排列:
2k,k,k-1,k-2,…,2,1,k+1,k+2,…,2k-1,2k+1,…,n-1,n
这么做的原因如下:
⑴gcd(k,2k)=k
⑵自然数中相邻两数的最大公约数为1
⑶自然数中相邻两奇数的最大公约数为1,即gcd(2k-1,2k+1)=1
⑷1与任何数的最大公约数为1
时间复杂度:O(n)
代码:
题意:1~n的全排列中谐波值严格第k小的排列为多少,排列p1,p2,…,pn的谐波值定义为:
由于p1,p2,…,pn是1~n全排列中的一种,可想而知的是,严格第1小的排列必定是那种任意相邻两个数最大公约数为1的排列。例如排列1,2,3,…,n。
此外,1~n这n个数还是很奇妙的,我们可以构造出任意约数为k的对。当然,前提是k<=n/2,而题目的要求正好是2k<=n。
故谐波值严格第k小的排列可以是存在一对相邻两个数最大公约数为k,其余任意相邻两个数最大公约数为1的排列。
故最方便的构造方法(与样例输出不同,但两者谐波值时一样的)是将2k和k提取出来放在排列最前面,然后构造相邻两数最大公约数为1的排列
即下述这种排列:
2k,k,k-1,k-2,…,2,1,k+1,k+2,…,2k-1,2k+1,…,n-1,n
这么做的原因如下:
⑴gcd(k,2k)=k
⑵自然数中相邻两数的最大公约数为1
⑶自然数中相邻两奇数的最大公约数为1,即gcd(2k-1,2k+1)=1
⑷1与任何数的最大公约数为1
时间复杂度:O(n)
代码:
#include <stdio.h> int main() { int t,n,k,i,p=1; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); printf("Case #%d:",p++); printf(" %d %d",2*k,k); for(i=k-1;i>=1;i--) printf(" %d",i); for(i=k+1;i<=n;i++) if(i!=2*k) printf(" %d",i); putchar('\n'); } return 0; }
相关文章推荐
- 2016 ACM-ICPC Asia Regional Changchun 1002 Fraction(模拟)
- 2016 ACM-ICPC Asia Regional Changchun 1004 Triangle(打表)
- 2015 ACM/ICPC Asia Regional Changchun Online Pro 1008 Elven Postman (BIT,dfs)
- hdu 5438 Ponds 拓扑排序+并查集 2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5437 Alisha’s Party (Priority_queue)2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5438 Ponds (拓扑排序+DFS)2015 ACM/ICPC Asia Regional Changchun Online
- HDU 5446 Unknown Treasure(lucas定理+中国剩余定理)——2015 ACM/ICPC Asia Regional Changchun Online
- 2015 ACM/ICPC Asia Regional Changchun Online(1002)
- 2015 ACM/ICPC Asia Regional Changchun Online 1007 hdu 5443 线段树区间最值
- 【题解】 2015 ACM/ICPC Asia Regional Changchun Online (5+2)
- hdu 4768 Flyer 二分(2013 ACM/ICPC Asia Regional Changchun Online 1010)
- HDU 5873 2016 ACM/ICPC Asia Regional Dalian Online 1006 Football Games
- HDU 5443 The Water Problem(水题 找区间最大值)——2015 ACM/ICPC Asia Regional Changchun Online
- hdu 5444 Elven Postman 2015 ACM/ICPC Asia Regional Changchun Online
- hdu 4762 Cut the Cake 概率(2013 ACM/ICPC Asia Regional Changchun Online 1004)
- The 2012 ACM-ICPC Asia Changchun Regional Contest(problem E)
- 2012 ACM-ICPC Asia Changchun Regional Contest - K:Yukari's Birthday
- 2012 ACM/ICPC Asia Regional Changchun Online HDOJ 4272 连连看
- 2013 ACM/ICPC Asia Regional Changchun Online
- HDU 5437 Alisha’s Party(优先队列+模拟)——2015 ACM/ICPC Asia Regional Changchun Online