- 博客(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.如果n4.对于剩下的一般情况,第一种情况,n被划分为 m+m1+m2+m3....... ,其中m是最大的,那么剩下的
2012-10-17 10:55:34 290
原创 hdu1299 Diophantus of Alexandria
这题还是比较水的,因为稍微一整理就可以转化为求n的平方的因子个数的一半+1,因为n的平方的因子个数必定为奇数个;可怜TLE,MLE了若干次,竟然把素数表打到了10^9次方,真是智商拙计。code#include #include #define LL __int64using namespace std;const int MAXN = 40010;LL p
2012-10-10 10:54:32 370
原创 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 505
原创 关于欧拉函数的两种求法
第一种: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 1032
原创 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 462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人