
组合数学
文章平均质量分 61
LeeBooL
这个作者很懒,什么都没留下…
展开
-
Necklace of Beads
裸的Polya定理, 不过要注意一点就是N = 0 的情况 #include #include #include #include #include using namespace std; int gcd( int a, int b) { if(b == 0) return a; return gcd(b, a%b原创 2015-01-24 13:47:38 · 489 阅读 · 0 评论 -
poj 3270
组合数学, 置换群 分析:原交换问题相当于一个置换群,因此可以分解成s个不相交循环的并,又因为每 个循环内的交换次数一定,我们选择循环中最小的一个数与其它数交换,代价最小。进而考虑到利用所有数中最小的一个m参与其他循环中的交换可能更优,加上这一点判断,问题得以解决。 Cost = sum + Σ(i-> 1~s) min{(ki - 2)*ti, ti+ (k1+1)m}; #i原创 2015-01-24 23:12:56 · 326 阅读 · 0 评论 -
POJ 3252
因为bit数组开小了神WA了无数遍 #include #include #include #include using namespace std; int bit[33]; int dp[32][32]; void init() { memset(dp, 0, sizeof(dp)); //dp[i][j] 长度为 i,原创 2015-01-18 17:21:59 · 305 阅读 · 0 评论 -
poj 1019
#include #include #include #include #include using namespace std; #define MAXN 32270 long long a[MAXN]; long long s[MAXN];//int会RE void init() { a[0] = s[0] = 0; for原创 2015-01-19 10:20:00 · 343 阅读 · 0 评论 -
POJ 2409
裸的polya定理 #include #include #include #include #include using namespace std; int gcd( int a, int b) { if(b == 0) return a; return gcd(b, a%b); } int n, m;原创 2015-01-24 16:17:31 · 363 阅读 · 0 评论 -
poj 1026
置换群的问题 先求去各个置换群及其长度, 然后看取模后的置换就好了, 长度为len的置换群置换len次相当于没置换 #include #include #include #include #include using namespace std; #define MAXN 220 int vis[MAXN]; int len[MAXN], cnt =原创 2015-01-25 11:03:26 · 325 阅读 · 0 评论