匈牙利算法模板题有n门课程,每门课程可能有不同一时候间,不同一时候间的课程等价。问不冲突的情况下最多能选多少门课。建立二分图,一边顶点表示不同课程,还有一边表示课程的时间(hash一下)。#include #include #include #include #include #include #i...
分类:
其他好文 时间:
2014-07-08 23:05:36
阅读次数:
291
旋转可以分为n种置换,对应的不同等价类分别是gcd(n,i)个i=0时不动,有n个
翻转分为奇偶讨论,奇数时有n种置换,每种有n/2+1个
偶数时有n种置换,一半是n/2+1个,一半是n/2个
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;...
分类:
其他好文 时间:
2014-07-08 19:05:15
阅读次数:
163
枚举位移肯定超时,对于一个位移i,我们需要的是它的循环个数,也就是gcd(i,n),gcd(i,n)个数肯定不会很多,因为等价于n的约数的个数。
所以我们枚举n的约数,对于一个约数k,也就是循环个数为n/k这样的个数有phi[k]种,证明网上有很多。所以答案就是 phi[k]*(pow(n,n/k)) (k是n的所有约数)
由于约数会很大所以不能打表,只能单个算。
再由于最后要除以n,如果做...
分类:
其他好文 时间:
2014-07-08 14:05:43
阅读次数:
170
1、c++/c语言中不少地方,数组和指针可以相互替换使用,容易让人产生一种错觉,指针和数组是等价的。数组要么在静态存储区域创建,如全局数组;要么在栈上创建如函数内的数组。数组的名称对应着(而不是指向)一块内存,它的地址和容量在其生命周期内保持不变,数组的内容可变。指针可以指向任意类型的内存块,它的特...
分类:
其他好文 时间:
2014-07-06 15:43:31
阅读次数:
241
Author: JW. Zhou Date: 2014/7/2 一、空指针(0/NULL) 返回NULL和返回0是完全等价的,因为NULL和0都表示空指针,换句话说:空指针是什么,就是一个被赋值为0的指针,在没有被具体初始化前,其值为0;NULL 是一个标准规定的宏定义,用来表示空指针常量。#def...
分类:
其他好文 时间:
2014-07-03 13:03:01
阅读次数:
215
问题:POJ3041分析: 构造二分图:令A = B = { 1, 2, ... , n }, 分别代表行号集与列号集。假如第i行第j列有一颗行星,则连接Ai与Bj, 表示必须从Ai(即第i行),Bj(即第j列)中选择一个射击。最小射击数等价于覆盖所有边的最小点集S的大小。问题转化为最小顶点覆盖问....
分类:
其他好文 时间:
2014-07-03 13:00:20
阅读次数:
228
#!/usr/bin/python# Filename: for.pyfor i in range(1, 5): print ielse: print 'The for loop is over'for循环在这个范围内递归——for i in range(1,5)等价于for i in ...
分类:
编程语言 时间:
2014-07-02 19:12:24
阅读次数:
288
这个是约瑟夫的另一个变型,变为总共有2*k个人,先是K个好人后是k个坏人,要求前k次都要杀坏人,即在杀掉第一个好人之前就要把所有的坏人都杀光,所以需要我们求出满足这个条件的最小的m值;
由约瑟夫的递归模型可以发现,我们因为他的递归是从最后杀的人递归到原有的人数,所以我们可以吧顺序反过来,等价于最后杀掉k个坏人,再杀好人,这样在递归的时候就是先知道起始位置(先杀的人),这样就能迭代,由有好人...
分类:
其他好文 时间:
2014-07-02 08:55:40
阅读次数:
188
匈牙利算法模板题
有n门课程,每门课程可能有不同时间,不同时间的课程等价。
问不冲突的情况下最多能选多少门课。
建立二分图,一边顶点表示不同课程,另一边表示课程的时间(hash一下)。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#defi...
分类:
其他好文 时间:
2014-07-02 08:05:03
阅读次数:
257