11 2013 档案

摘要:思路:在没有限制条件时,很容易知道结果为C(m+n,n)*C(m+q-p,q).然后再把相交的情况去除就可以了。而如果想到了就是水题了……求A->D,B->C相交的情况可以转化为求A->C,B->D的情况。所以结果就为C(m+n,n)*C(m+q-p,q)-C(m+q,m)*C(m+n-p,n).代码:#include#include#define M 200001#define mod 100000007#define ll long longusing namespace std;ll inv(ll x){ if(x==1) return 1; return inv 阅读全文
posted @ 2013-11-15 10:45 _随心所欲_ 阅读(375) 评论(0) 推荐(0)
摘要:思路:要求满足的m=a3+b3=(a+b)(a2-ab+b2)的(a,b)组合。令t=a+b,则t一定是m的约数,所以应枚举m的所有约数。然后可以得到a+b=tab=(t2-m/t)/3=p继而转化为a2-ta+p=0是否有正整数解就可以了。再就是注意范围要用unsigned long long。代码: 1 #include 2 #include 3 #include 4 #include 5 #define ll unsigned long long 6 #define M 5000001 7 #define mm 2641636 8 using namespace std;... 阅读全文
posted @ 2013-11-06 21:15 _随心所欲_ 阅读(430) 评论(0) 推荐(0)
摘要:一道纯粹的容斥原理题!!不过有一个trick,就是会出现重复的,害我WA了几次!!代码:#include#include#include#include#include#include#include#define ll long long#define mod 55566677using namespace std;int p[52],ans;int m,n;bool visd[52],visc[52],vis[52][52];struct point{ int a,b;}q[30];void dfs(int s,int i,int f){ ans=(ans+f*p[n-s])%... 阅读全文
posted @ 2013-11-03 20:35 _随心所欲_ 阅读(325) 评论(0) 推荐(0)