摘要:题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1551 题意: 给出一段序列, 删除其中一段连续的子序列(或者不删), 使得剩下的序列的最长上升连续子序列最大。 题解: 1.对于要删除的的子序列而言,要么夹在答案序列中间,要么在外面(
阅读全文
摘要:题目链接:https://vjudge.net/problem/CSU-1531 Input Output Sample Input 题解: 一开始想用DP做,后来发现不行,因为新加入的点会破坏前面的结果,且不知道前面的状态如何,所以不能用动态规划的思想去解题。 1.用最少的边去覆盖掉所有的点,顾名
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4848 题解: 一开始读错题目。以为每个点只能访问一遍。其实只要每个点都有被访问就可以了。 首先是用弗洛伊德算法求出每两点之间的最短路。然后再用dfs搜索。注意剪枝,否则会超时。 代码如下: 1 #inc
阅读全文
摘要:题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1530对于一块2^n质量的gold。需要把它分成a质量和b质量(a+b=2^n),且每次分时是平分。问至少要平分多少次?其实只需要知道最小分块的质量,就能...
阅读全文
摘要:题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1529 题解: 一个加强版的最大连续和子序列,序列可以从末尾元素转到首元素。 分两种情况: 1.最大连续和不需要尾接首,直接dp出以a[i]为结尾的最大连续和ma[i]。 2.最大连续和
阅读全文
摘要:题目链接:http://codeforces.com/gym/100283/problem/K题解:要使其相邻两项的差值之和最小,那么越靠中间,其数值越小。那么剩下的问题就是如何放数字了。一开始的想法是从中间开始放,然后:左右左右……, 后来发现当为偶数个时,这种放法...
阅读全文
摘要:题目链接: http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1553 Description Give you a sequence of n numbers, and a number k you should find the max len
阅读全文
摘要:题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1550 题解: 1.A+B 与C的交集必须>=n 2.A与C的交集必须>=n/2,B与C的交集必须>=n/2。 代码如下: 1 #include <iostream> 2 #includ
阅读全文
摘要:题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1547题解:关键是怎么处理长度为1的长方形。当长度为1的长方形的个数cnt>=2时,怎么把这些长方形分成两组,使得这两组的高度差最小,即最接近H/2。一开...
阅读全文
摘要:题目链接:http://codeforces.com/gym/101147/problem/H题解:单纯的三维DP。可用递推或记忆化搜索实现。学习:开始时用记忆化搜索写,dp[]初始化为0,结果一直走不出循环。后来发现:即使被搜过的位置,其值也可以是0,当再一次访问这...
阅读全文
摘要:题目链接:http://codeforces.com/gym/101147/problem/E 题意:当人在第i个商店时,他可以向左或向右跳di段距离到达另一个商店(在范围之内),一个商店为一段距离。问:对于每一个商店,跳到最后一个商店最少需要跳几次? 题解:题目实际上是求最短距离,而且边权为1,所
阅读全文
摘要:题目链接:http://codeforces.com/gym/100187/problem/J 题目链接:问通过洗牌器,能否将编号为x的牌子转移到第一个位置? 根据 洗牌器,我们可以知道原本在第i位置的牌可以转移到第j个位置,且这种转移是单向的。如果要把在某个位置的牌转移到第一个位置,那么必须至少存
阅读全文
摘要:题目链接:http://codeforces.com/gym/100187/problem/E 题解:一开始做的时候是将两幅图合并,然后直接bfs看是否能到达终点。但这种做法的错的,因为走出来的路对于两幅图来说不一定都是最短的。正确做法: 第一步:分别用bfs求出两图的最短路。 第二步:如果最短路长
阅读全文
摘要:题目链接:http://codeforces.com/gym/100187/problem/A题解:光题意就想了很久:在最坏情况下的最小兔子数。其实就是至少用几只兔子就一定能找出仙药(答案存在的话)。再注意一下特殊情况就可以了,代码如下:#include #inclu...
阅读全文
摘要:题目链接:http://codeforces.com/gym/100283/problem/F F. Bakkar In The Army time limit per test 2 seconds memory limit per test 256 megabytes input army.in
阅读全文
摘要:题目链接:http://codeforces.com/problemset/gymProblem/101028/I I. March Rain time limit per test 2 seconds memory limit per test 64 megabytes input standar
阅读全文
摘要:题目链接:http://www.gdutcode.sinaapp.com/problem.php?cid=1057&pid=4题解:方法一:对n取2的对数:取对数的公式:s = log(n)/log(2), //取整#include#include#include#i...
阅读全文
摘要:题目链接:http://codeforces.com/contest/767/problem/C 题解:类似于提着一串葡萄,用剪刀剪两条藤,葡萄分成了三串。问怎样剪才能使三串葡萄的质量相等。 首先要做的就是统计葡萄的总质量tot。之后就是找到两子串质量为(tot/3)的葡萄(如果除不尽,则必定找不到
阅读全文
摘要:题目链接:http://codeforces.com/contest/714/problem/CC. Sonya and Queriestime limit per test1 secondmemory limit per test256 megabytesinput...
阅读全文
摘要:题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1808 题解:由于中转线路需要花费一定的时间,所以一般的以顶点为研究对象的dijkstra算法就不适用了,因为在松弛过程中,当前节点的最短路径不能知道是从那条线路过来的。(保存当前结点的
阅读全文
摘要:题目链接:http://codeforces.com/problemset/problem/377/A 题解: 有tot个空格(输入时统计),把其中k个空格变为wall,问怎么变才能使得剩下的空格依然为连通的。把问题反过来,其实就是求tot-k的连通图。dfs:在搜索过的空格中做个标记,同时更新连通
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3183 题解: 方法一:贪心。 在草稿纸上试多几次可以知道,删除数字中从左到右最后一位递增(可以等于)的数字,可以得到最小值,在这个基础下,又继续删除最后一位递增的数字,得到的依然是最小值。这就表明当前这
阅读全文