- 博客(5)
- 收藏
- 关注
原创 hdu1028 Ignatius and the Princess III
智商的确是太拙计了,以前看过整数划分问题,现在还是不会做, 设函数F(n,m)为整数n的划分中最大的整数是m, 1.如果n等于1或者m等于1,肯定只有一种划分,即全是1的划分 2.如果n等于m,肯定会出现一种划分,即一个数n,然后剩下的划分就是 F(n,m-1); 3.如果n 4.对于剩下的一般情况,第一种情况,n被划分为 m+m1+m2+m3....... ,其中m是最大的,那么剩下的
2012-10-17 10:55:34 288
原创 hdu1299 Diophantus of Alexandria
这题还是比较水的,因为稍微一整理就可以转化为求n的平方的因子个数的一半+1,因为n的平方的因子个数必定为奇数个; 可怜TLE,MLE了若干次,竟然把素数表打到了10^9次方,真是智商拙计。 code #include #include #define LL __int64 using namespace std; const int MAXN = 40010; LL p
2012-10-10 10:54:32 364
原创 hdu3307 Description has only two Sentences
刚开始花了很长时间化简,求出x^k mod a0=1来却不知道怎么去求解。。。。 看了解题报告,套用欧拉函数,因为 x^φ(a0) mod a0 =1,所以除了无解的情况,最大的解也不会超过φ(a0),然后比较φ(a0)的因子里,找一个最小的即可。 对于无解的情况,即 Gcd(x,a0)!=1 ,假设存在共同因子m,那么x=x' * m,a0=a0' * m;则 (x' * m)^k - t*
2012-10-08 15:19:55 500
原创 关于欧拉函数的两种求法
第一种: LL Eular(LL n) { LL fac,ans=1; for(fac=2;fac*fac<=n;fac++) { if(n%fac==0) { n/=fac; ans*=fac-1; while(n%fac==0) {
2012-10-08 09:04:35 1025
原创 hdu4121 xiangqi
挺恶心的模拟,卡了好长时间。。 code: #include #include #include #include using namespace std; const int MAXN = 1005; const int dx[]={1,0,-1,0}; const int dy[]={0,1,0,-1}; char map[15][15]; int n,bi,bj; struct
2012-10-08 07:32:57 458
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人