摘要:
求一个K进制下是N的倍数的数,要求这个数使用的数字最少,数字个数相同时取较小的数。 首先有一个结论,至多用两个数字可以构造任意数的倍数。假设只有一个数字吗,由这一个数字构成的数模N的结果只能是0~N-1,由抽屉原理可知必然存在两个数模N的结果相同,这两个数一减,结果有两个数字构成,模N的结果是0。 然后就暴力BFS吧,队列中存的是余数,找到余数为0或者出现已经出现过的余数就返回。每次找到解比较跟新一下即可。 1 #include <string.h> 2 #include <stdio.h> 3 #define MAXN 10005 4 int n, k, num[2] 阅读全文
posted @ 2012-09-20 07:43
Burn_E
阅读(204)
评论(0)
推荐(0)
摘要:
又是POJ原题,这网赛是有多少原题。。一些人站队,但有的一排站了多个人,每个人告诉你他前面有多少个人,后面有多少个人,问说实话的人最多有多少个。 比赛的时候没想法,大叔过的这一题。赛后看了解题报告才发现思想原来是那么简单。p[i][j]表示说前面i个人,后面j个人这个区间说实话的最大人数,有一个人说i,j就加一,注意不能超过n-i-j,然后d[i]表示i前面区间都已经确定时说实话的最大人数。d[i]=max(d[j]+p[j][n-i])。 1 #include <stdio.h> 2 #include <string.h> 3 #include <algorit 阅读全文
posted @ 2012-09-20 07:34
Burn_E
阅读(173)
评论(0)
推荐(0)
摘要:
据说也是原题,N个人,F种食物,D种饮料,每种食物和饮料都有一定的数量,而每个人都有自己喜欢的食物和饮料,当一个人拿到自己喜欢的食物之一以及喜欢的饮料之一时,这个人能够被满足。求最多能满足多少人。 看到题就觉得是网络流,但一时没想到怎么建图,斌牛一看题就说是原题,然后啪啪啪敲完键盘就过了。。 食物放左边,饮料放右边,人放在中间,拆成两个点,点间流量为一,然后左点连喜欢的食物,右点连喜欢的饮料,再加个源点和汇点,做一遍网络流就OK了。。 1 #include <string.h> 2 #include <stdio.h> 3 #include <algorithm& 阅读全文
posted @ 2012-09-20 07:25
Burn_E
阅读(167)
评论(0)
推荐(0)
摘要:
求g(g(g(n))) mod 109 + 7,已知g(n) = 3g(n - 1) + g(n - 2),g(1) = 1,g(0) = 0。 因为每两个数只和前两个数有关,所以模之后必然会出现循环节。现在只知道最外层的循环节,所以要把内两层的循环节暴力出来。有了三层的循环节之后用二分矩阵就可以了。 1 #include <string.h> 2 #include <stdio.h> 3 typedef long long LL; 4 struct matrix{ 5 LL mz[2][2]; 6 void init(int type){ 7 memse... 阅读全文
posted @ 2012-09-20 07:18
Burn_E
阅读(161)
评论(0)
推荐(0)
摘要:
图上的每个点有权值,求使从起点无法到达终点去掉的权值和最小。 因为权值在点上,所以要进行拆点。将i点拆为2i和2i+1。然后流量统一从偶数点进,奇数点出,点之间连流量为点权的有向边,无向边拆成两条有向边,分别向两个端点连两条流量为无穷大的有向边,如下图所示。 1 #include <string.h> 2 #include <stdio.h> 3 #include <algorithm> 4 #define MAXN 500 5 #define MAXE 100000 6 #define INF 0x3f3f3f3f 7 struct edge{ 8 int 阅读全文
posted @ 2012-09-20 07:12
Burn_E
阅读(221)
评论(0)
推荐(0)
摘要:
维护一个可以插入删除的有序序列,每次询问序列中位置mod5=3的数的和。 CodeForces原题,因为时限给的太宽,数据太水,STL可以暴力过。 用线段树和平衡树都可以做这题,线段树需要先离散化,然后每个区间五个标记分别保存到这个区间左端点的距离mod5=0~4的和,以及一个标记保存这个区间数的个数。合并区间的时候,左儿子因为左端点相同可以直接合并,而右儿子需要推一下,假设左儿子有Num个元素,右儿子本来Mod5=K的点,合并之后到左端点Mod5的值为(num%5+K)%5,所以sum[p][i] = sum[p<<1][i] + sum[p<<1|1][(i-num 阅读全文
posted @ 2012-09-20 06:58
Burn_E
阅读(176)
评论(0)
推荐(0)
浙公网安备 33010602011771号