这是一道要用抽屉原理的题,我们可以用一个sum数组,记录前 i 个元素之和mod c 的结果,拿第一组数据来说明(a[i]存放糖块)
然后用mod数组存放出现该余数sum[i]时的下标,形式是mod[sum[i]]=i;
即:mod[1]=1,mod[3]=2,mod[2]=3......因为等下写代码的时候是一次对mod判断的,所以后面的mod[1]=4是不会出现的。
mod和sum的作用是:①当出现sum[i]=0时,说明从1到 i 这 i 个元素的和能被c整除,即符合题意;
②当sum[i]...
分类:
其他好文 时间:
2014-08-08 18:19:16
阅读次数:
247
一维最大字段和的扩展。
要诀是固定列的左右点,比如左边记录为left, 右边记录为right,那么一个循环left从0到COL,行最大值,那么right从left开始循环到COl,就可以考虑到所有列组合了,这个循环是O(n*n),然后求范围列内的行最大子段和,时间是O(n),
这样巧妙地把二维的问题转化为一维了,最终时间复杂度是O(n^3)。
可以参考Geeks上的讲解,不过他的最大...
分类:
其他好文 时间:
2014-08-08 18:12:56
阅读次数:
227
链接:UVa 10192
题意:给定两个字符串,求最长公共子串的长度
思路:这个事最长公共子串的直接应用
#include
#include
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
char s[105],t[105];
int i,j,k=0,m,n,dp[105][105];
...
分类:
其他好文 时间:
2014-08-08 18:11:56
阅读次数:
199
顺序队列是一段连续的地址,但是存在假溢出情况,所以要用循环队列来实现,具体操作像钟表下面是顺序队列的表示与实现:#include using namespace std;//顺序循环队列的基本表示和实现const int MAX_SIZE = 100;//定义队列长度struct SqQueue{ ...
分类:
其他好文 时间:
2014-08-08 17:57:26
阅读次数:
205
1 //线段树数组静态模板 2 3 4 #include 5 #include 6 #define MAX 50003 7 #define ll long long 8 9 using namespace std;10 11 struct node12 {13 int w;14 ...
分类:
其他好文 时间:
2014-08-08 17:34:56
阅读次数:
259
问题描述:
原先SGA 4G,PGA 2G。
alter system set sga_max_size=30G scope=spfile;
alter system set sga_target=30G scope=spfile;
之后,
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE in...
分类:
其他好文 时间:
2014-08-08 16:13:26
阅读次数:
266
基本思想:
统计数组data,小于data[i]的个数为N,则把data[i]放在第N+1个位置上面。
实用范围:
所有数都在[0,max]范围内,max为数组的最大值,适用于max不是很大的情况。
对于数据2 5 3 0 2 3 0 3程序执行的过程如下图所示:
C++代码:
#include
using namespace...
分类:
其他好文 时间:
2014-08-08 16:09:56
阅读次数:
202
No limit to transaction count, so it is a recursive sum calculation. Take care of boundary condition.class Solution {public: int maxProfit(vector &...
分类:
其他好文 时间:
2014-08-08 15:58:06
阅读次数:
212
先一道一道题慢慢补上,1009.题意,一棵N(Nw的路径出现次数,以及S2在v->w出现的次数。S1(x) = S0[1....x],1w出现的次数记为t1[x],那么t1[x] = dp1[u][1][x] - sum{t1[a-1]*dp1[fa[w]][a][x]} (1 3 #includ....
分类:
其他好文 时间:
2014-08-08 15:17:36
阅读次数:
299