1、2016中国大学生程序设计竞赛(长春)-重现赛

2、总结:会做的太少,应变能力也不行,或者说猜题目的能力不行

02  水

04  HDU 5914  Triangle

1、题意:1~n,n个数,问至少取出多少个数使剩下的数不构成三角形。

2、总结:比赛的时候想不出,直接数,反正n<=20。。还是思维不灵活啊

3、思路:只要剩下的数都是fibnacci数列就可以。

#include<iostream>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
#include<cstdio>
#define F(i,a,b) for (int i=a;i<b;i++)
#define FF(i,a,b) for (int i=a;i<=b;i++)
#define mes(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=,MAX=; int main()
{
int T,n,a[];
mes(a,);
a[]=a[]=a[]=a[]=a[]=a[]=a[]=;
F(i,,)a[i]+=a[i-];
cin>>T;
FF(cas,,T){
cin>>n;
printf("Case #%d: %d\n",cas,n-a[n]);
} return ;
}

06  HDU 5916  Harmonic Value Description

1、题意:求一组序列所有排序的第k小值。即要有两个相邻的数gcd为k,其它相邻数gcd都为1。

2、总结:思维不够灵活,应该多猜

3、思路:(1)k,k+1互质。(2)2*k-1,2*k+1互质。所以这题可以先输出2*k,k,这两数gcd就是k。再把k+1~n输出,再输出1~k-1。

#include<iostream>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
#include<cstdio>
#define F(i,a,b) for (int i=a;i<b;i++)
#define FF(i,a,b) for (int i=a;i<=b;i++)
#define mes(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const int N=,MAX=; int main()
{
int t,n,k;
cin>>t;
FF(cas,,t){
cin>>n>>k;
printf("Case #%d: %d %d",cas,k*,k);
FF(i,k+,n){
if(i!=k*)printf(" %d",i);
}
F(i,,k)printf(" %d",i);
puts(""); } return ;
}
04-23 18:19