【SSL_1461】最大连续数列的和

最大连续数列的和题目求最大连续子序列的和Input第一行输入n(n<=500),第二行为n个以空格分开的整数(-1000到1000之间);Output该序列中最大的连续子序列的和Sample Input61 2 -5 6 7 8Sample Output21解题思路设f[i]为以序列中第i个元素结尾的最大子序列之和。如果第i个数加上以上个数结尾的最大子序列之和的和大于0,那么f[i]就接上前面的序列,因为这样会使和比自己本身组成一个序列要大。否则f[i]为0,因为清0就不
分类: 其他 发布时间: 09-07 22:29 阅读次数: 0

【SSL_1210】最佳浏览路线问题(normal)

最佳浏览路线问题题目某旅游区的街道成网格状(见图),其中东西向的街道都是旅游街,南北向的街道都是林荫道。由于游客众多,旅游街被规定为单行道。游客在旅游街上只能从西向东走,在林荫道上既可以由南向北走,也可以从北向南走。阿隆想到这个旅游区游玩。他的好友阿福给了他一些建议,用分值表示所有旅游街相邻两个路口之间的道路值得浏览得程度,分值从-100到100的整数,所有林荫道不打分。所有分值不可能全是负值。例如下图是被打过分的某旅游区的街道图:阿隆可以从任一路口开始浏览,在任一路口结束浏览。请你写一个程
分类: 其他 发布时间: 09-07 22:29 阅读次数: 0

【SSL_1463】公共子串

公共子串题目设有A、B两个字符串,找出A、B共同子串,每个字符串无相同字符,可以不连续,但顺序不能颠倒。Input第一行字符串A第二行字符串BOutput最长公共子串的长度.Sample InputabcfbcabfcabSample Output4解题思路求两个字符串的最长公共子串,顺序不能颠倒,但可以不连续。代码#include<iostream>using namespace std;string s1,s2;int f[1000][1000];v
分类: 其他 发布时间: 09-07 22:29 阅读次数: 0

【SSL_1209】 旅行

旅行题目ACM队员们到Z镇游玩,Z镇是一个很特别的城镇,它有m+1条东西方向和n+1条南北方向的道路,划分成MN个区域。Z镇的名胜位于这些区域内,从上往下第i行,从左往右数第j列的区域记为D(i,j)。ACM队员们预先对这MN个区域打分V(i,j)(分数可正可负)。分数越高表示他们越想到那个地方,越低表示他们越不想去。为了方便集合,队员们只能在某一个范围内活动。我们可以用(m1,n1)与(m2,n2)(m1<=m2,n1<=n2)表示这样一个范围:它是这些区域的集合: ,ACM队员希望他们活
分类: 其他 发布时间: 09-07 22:28 阅读次数: 0

【SSL_1517】糖果盒

糖果盒题目一个被分为 n*m 个格子的糖果盒,第 i 行第 j 列位置的格子里面有 a [ i ][ j ] 颗糖。本来 tenshi 打算送这盒糖果给某 PPMM 的,但是就在要送出糖果盒的前一天晚上,一只极其可恶的老鼠夜袭糖果盒,有部分格子被洗劫并且穿了洞。tenshi 必须尽快从这个糖果盒里面切割出一个矩形糖果盒,新的糖果盒不能有洞,并且 tenshi 希望保留在新糖果盒内的糖的总数尽量多。请帮tenshi设计一个程序 计算一下新糖果盒最多能够保留多少糖果。Input从文件CANDY.IN读
分类: 其他 发布时间: 09-07 22:28 阅读次数: 0

【SSL_1205】 最大子矩阵之和

最大子矩阵之和题目给出一个N [2<=N<=100],并给出一个N*N的矩阵,矩阵中的数为[-127,127]之间。求出矩阵中一块子矩阵的最大和。比如:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2和最大的子矩阵应该是这个:9 2-4 1-1 8它的和是15。Sample Input40 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2Sample Output15思路这题跟糖果盒几乎一样,只是不用
分类: 其他 发布时间: 09-07 22:28 阅读次数: 0

谷仓的安保

谷仓的安保题目Farmer John给谷仓安装了一个新的安全系统,并且要给牛群中的每一个奶牛分配一个有效的密码。一个有效的密码由L(3 <= L <= 15)个小写字母(来自传统的拉丁字母集’a’…‘z’)组成,至少有一个元音(‘a’, ‘e’, ‘i’, ‘o’, 或 ‘u’)和两个辅音(除去元音以外的音节),并且是按字母表顺序出现的(例如,abc’是有效的,而’bac’不是) 。给定一个期望长度L和C个小写字母,写一个程序,打印出所有的长度为L、能由这给定的C个字母组成的有效密
分类: 其他 发布时间: 09-07 22:27 阅读次数: 0

【SSL_1458】dfs数字金字塔

数字金字塔题目你和权权是一对很好很好的朋友。有一天,你们无聊得很,便上网冲浪,突然在一个叫做USACO的网中找到了一个游戏:《数字金子塔》。游戏规则是这样的:求一个数字金字塔中从最高点开始在底部任意处结束的路径经过数字的和的最大,其中的每一步可以走到下方的点也可以到达右下方的点。例如在下面的例子中,从7 — 3 — 8 — 7 –- 5的路径产生了最大和:30。73 88 1 02 7 4 44 5 2 6 5你们便约定了谁能计算出最后的值便是赢者。你仰天(天花板)长叹:我能成为赢者吗,要知
分类: 其他 发布时间: 09-07 22:27 阅读次数: 0

【SSL_1100】数字金字塔(DP)—搜索、顺推、逆推三种代码都有

#include#include#include #include#include using namespace std;int meno[1001][1001],a[1001][1001],n;int dfs(int x,int y){ if(meno[x][y]!=0){ return meno[x][y]; }if(x==n)meno[x][y]=a[x][y]; else{ meno
分类: 其他 发布时间: 09-07 22:27 阅读次数: 0

【SSL_1041】2004年分区联赛提高组之三 合唱队形

合唱队形Time Limit:1000MS Memory Limit:65536KTotal Submit:253 Accepted:111题目N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<…Ti+1>…>TK(1<=i<=K)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出
分类: 其他 发布时间: 09-07 22:27 阅读次数: 0

动态规划(DP)专题---DP题目、题解

动态规划数字金字塔最小代价问题求最长不下降序列城市交通2005年分区联赛普级组之三 采药1996年分区联赛提高组之三 挖地雷2004年分区联赛提高组之三 合唱队形开心的金明将持续为您更新!!!...
分类: 其他 发布时间: 09-07 22:26 阅读次数: 0

【SSL_1276】石子归并 (DP)

石子归并题目你有一堆石头质量分别为W1,W2,W3…WN.(W<=100000)现在需要你将石头合并为两堆,使两堆质量的差为最小。Input测试数据第一行为整数N(1<=N<=20),表示有N堆石子。第二行为N个数,为每堆石子的质量。Output每组测试数据只需输出合并后两堆的质量差的最小值。Sample Input55 8 13 27 14Sample Output3解题思路还是01背包 ,把一堆石头分成尽量平均的两堆石头,使得两堆石头质量的差为最小,也就是说容量为
分类: 其他 发布时间: 09-07 22:26 阅读次数: 0

洛谷:P4799 [CEOI2015 Day2]世界冰球锦标赛(折半搜索,剪枝搜素,省选/NOI-)

题目:分析:这里给的搜素题,总觉得不是很好。终于遇到一道还不错的。本以为是基础。0优化代码:#include<bits/stdc++.h>using namespace std;long long A[50];int m;long long n;long long ans=0;void f(long long rest,int num){ if(num==n) { ans++; return; } if(rest<A[num]) { ans++; re
分类: 其他 发布时间: 09-07 22:26 阅读次数: 0

洛谷:P2392 kkksc03考前临时抱佛脚(搜索,)--来一个小的思路总结吧!

题目:分析:一道简单的搜索题。代码:不写了,算是回顾一下思路吧,每一行都可以当做一个小的搜索。每一个小的搜索怎么处理?0优化:不做处理的取和不取。自己的优化:统计个数,当然,这次不需要再计算c了大佬优化:二分思想。嗯,有时需要排序什么的。...
分类: 其他 发布时间: 09-07 22:25 阅读次数: 0

洛谷:P1162 填涂颜色(普及-,搜索)

题目:分析:虽然是一道简单题,那为什么自己要写呢?因为这涉及到了一点:换个角度的思想。自己在做数学题经常可以想到,但在写代码的时候,基本上都会忘记。代码:#include<bits/stdc++.h>using namespace std;int A1[31][31];int A2[31][31];int m;int D1[4]={1,-1,0,0};int D2[4]={0,0,1,-1};void dfs(int x,int y){ if(x>=m||y&
分类: 其他 发布时间: 09-07 22:25 阅读次数: 0

洛谷:P2895 [USACO08FEB]Meteor Shower S(bfs,)

题目:分析:与时间有关的变化图,没有任何的思路。只能想到暴力搜:看题解,自己思维的错误点在于:即使有时间点的影响,也不可能重复到达其他的点。代码:#include<bits/stdc++.h>using namespace std;int A[605][605];int D1[5]={0,-1,1,0,0}; int D2[5]={0,0,0,-1,1};void f(int x,int y,int c){ if(x<0) return; if(y<0) r
分类: 其他 发布时间: 09-07 22:25 阅读次数: 0

洛谷:P2036 [COCI2008-2009#2] PERKET(普及-,搜索)

题目:分析:看完题,我想,一个乘,一个+。想啊想,想啊想,怎么做呢?不会,看题解。暴力,看数据。确实暴力。没办法做的话,那就不如暴力呗!代码:#include<bits/stdc++.h>using namespace std;int m;long long A1[15],A2[15];long long ans=1<<30;void f(int n,long long c1,long long c2,int nn){ if(n==m) { if
分类: 其他 发布时间: 09-07 22:25 阅读次数: 0

洛谷:P1551 亲戚(普及-,并查集模板题)

题目:分析:一道最基础的并查集。直接看看题解吧,用什么数据结构。嗯,知道为什么自己在力扣上超时了。因为其实一个数组就可以实现所谓集合的合并。A[x】表示,x结点的代表元素(题解中都说是父节点,)再分析:强调:不能做到实时更新。但是有更新的必要,不用一个一个的挨着遍历了。代码:#include<bits/stdc++.h>using namespace std;int A[5005];int f(int x)//求x的代表元素 { if(A[x]==-1) {
分类: 其他 发布时间: 09-07 22:24 阅读次数: 0

洛谷:P1536 村村通(并查集,普及/提高-)

题目:分析:在模板代码上进行修改,因为遇到-1就是新的集合。不多说了。代码:#include<bits/stdc++.h>using namespace std;int A[5005];int ans=0;int f(int x)//求x的代表元素 { if(A[x]==-1) { A[x]=x; ans++; return x; } if(A[x]==x) return x; return A[x]=f(A[x]);}int main(){ m
分类: 其他 发布时间: 09-07 22:24 阅读次数: 0

洛谷:P5250 【深基17.例5】木材仓库(普及/提高-,stl)--set的二分

题目:分析:我用之前的set做吧,刚好有查找函数。代码:#include<bits/stdc++.h>using namespace std;set<int> s;int main(){ s.insert(2000000005); s.insert(-2000000005); int m; cin>>m; for(int i=0;i<m;i++) { int m1,m2; cin>>m1>>m2; i
分类: 其他 发布时间: 09-07 22:24 阅读次数: 0