F - To the Max】的更多相关文章

Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectangle is the sum of all the elements in that rectangle. In this probl…
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/F 题意:求至上而下一条路径的所经过的值得和最大值,这题比赛时就出了 但当时看不懂题目一直没写,这就和数字三角形差不多,只是加上了他的下部分,分上下两种情况就行. AC代码: #include<cstdio> #include <cstring> #include <iostream> using namespace std; int i,j,n; ][]…
Description 有一个长度为 \(n\) 有正负权值的序列,你一开始有一个值,每次到一个权值就加上,最少需要删掉多少数值才能到序列末尾.\(n \leqslant 750,m \leqslant 2 \times 10^5\) Sol DP+二分. 发现这个东西有后效性,就是前面选不选会影响后面的决策,并且权值太大无法记录. 但是我们可以倒着做,因为后面的决策无法影响前面的决策. \(f[i][j]\) 表示到 \(i\) 删掉 \(j\) 个至少需要的初始权值. 因为初始权值非负,所以…
Problem F. Fibonacci SystemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=86821#problem/B Description Little John studies numeral systems. After learning all about fixed-base systems, he became inte…
题目链接: http://codeforces.com/gym/100825 题目大意: N(N<=600)个点,每个点有个名字Si,R(R<=200)个生产商在R个点上,F(F<=200)个工厂在F个点上,不会有一个点既有生产商又有工厂 有T(T<=1000)个公司,每个公司能够到达Ci个点,并且一个只能运输一个生产商的货物.比如生产商1给工厂1运输货物需要用到公司1,那么其余生产商就不能用公司1 一个工厂需要任意一个生产商供应货物,求最多能够给多少个工厂供应货物. 题目思路:…
A.最大下降矩阵 时间限制: 1 Sec  内存限制: 512 MB提交: 508  解决: 107[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 我们称一个矩阵是下降矩阵,当且仅当,矩阵的每一列都是严格下降的.很显然,这个要求很苛刻,大多数矩阵都无法满足.但是显然如果消去一些行,一定可以使得这个矩阵变成下降矩阵. 现在给出一个n行m列的矩阵,请你求出最少消去多少行,可以使得这个矩阵变为下降矩阵. 输入 输入第一行包含两个正整数n,m分别表示矩阵的行数和列数.(1<=n,m<=…
HDU 1024 Max Sum Plus Plus (动态规划) Description Now I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we always challenge ourselves to more difficult problems. Now you are faced with a more difficult problem. Given…
Aspirations:没有结果,没有成绩,acm是否有意义?它最大的意义就是让我培养快速理解和应用一个个未知知识点的能力. ———————————————————————————————————————————————— Background:F. Niyaz and Small Degrees http://codeforces.com/contest/1119/problem/F 这道题目是一道高阶的树形DP的题目,我之前并没有涉及到这类题目. 已经有的基础:DP中的01背包. 特点:看到…
标程的写法稍微有点麻烦,其实不需要平衡树也是可以做的. 线段树上维护从左端点开始最远的有拍照的长度,以及区间的最大值. 考虑两段区间合并的时候,显然左区间必须取,右区间的第一个比左区间最大值大的数开始就可以取了,这个可以从右区间往下递归找,然后就没了,查询的时候同理,复杂度$O(nlog^2n)$. #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> using na…
Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 28136    Accepted Submission(s): 9810 Problem Description Now I think you have got an AC in Ignatius.L's "Max Sum" problem.…
[题目]F. Pathwalks [题意]给定n个点m条边的有向图,可能不连通有重边有自环.每条边有编号 i 和边权 wi ,求最长的路径(可以经过重复节点)满足编号和边权都严格递增.n,m,wi<=10^5. [算法]主席树+DP [题解]这个和LIS十分类似,只要在考虑LIS的树状数组做法的前提下多考虑节点搭配问题,即f[i]=f[j]+1还需要e[j].v=e[i].u. 所以对每个节点建可持久化线段树,然后DP即可.(当然也可以用可持久化树状数组) 复杂度O(n log n). #inc…
传送门 题目大意: 给一个序列,要求将序列分成m段,从左至右每一段分别长l1,l2,...lm,求最大的和是多少. 题目分析: 和最大m段子段和相似,先枚举\(i \in [1,m]\),然后$j \in [num[m], n] $,dp转移为: \[dp[j][i] = max(dp[j - 1][i], dp[j - num[i]][i - 1] + sum[j] - sum[i - num[i]])\] code: #include<iostream> #include<cstdi…
###题目链接### 题目大意: 给你一棵树,k 次操作,每次操作中有 a  b 两点,这两点路上的所有点都被标记一次.问你 k 次操作之后,整棵树上的点中被标记的最大次数是多少. 分析: 1.由于数据太大,故可以采用树上差分中的点差分来做到 O(1)标记. 2.需要用 tarjan 离线找出两点间的 lca . 3.在树上点差分中,还需要找到 lca 的父亲节点.由于在 tarjan 求 lca 时,并查集中的 pre[lca] 并非一直指向的是 lca 的父亲节点,故需要再开一个 fa[]…
PROBLEM D - Round Subset 题 OvO http://codeforces.com/contest/837/problem/D 837D 解 DP, dp[i][j]代表已经选择了i个元素,当2的个数为j的时候5的个数的最大值 得注意最大值(貌似因为这个喵呜了一大片喵~☆) #include <iostream> #include <cstring> #include <cstdio> #include <cmath> #include…
F. Cards and Joy 题目大意: 给你n个人,每一个人恰好选k张牌. 第一行是 n 和 k 第二行有n*k个数,代表有n*k张牌,每张牌上的数字 第三行有n个数,代表第i个人喜欢的数字 第四行有k个数,代表有如果一个人可以拿到 i 张喜欢的牌,那么快乐值+h[i] 然后就是让你分配这些牌来找最大的欢乐值. 这个题目仔细想想就知道,因为这个h数组是递增的,所以我们就是要尽量把这个人喜欢的牌分配给她. 如果一种牌喜欢的人只有一个,那就把这个类型都给她,但是如果有很多人喜欢一样的牌,那就要…
LINK:Select Half 考试的时候调了一个小时给调自闭了 原来是dp的姿势不太对. 首先 容易发现 奇数最多空2个位置 偶数最多空1一个位置 然后 设f[i][j][k]表示第i个数选了没有j 且当前用了k个空位的最大值. 然后把自己给dp迷了 最后发现选的数量无法固定所以 这个dp崩了. 考虑贪心不难发现偶数最多有两个空位连在一起 这个可以暴力枚举 奇偶性直接拿. 奇数 可以三个空位连在一起 或者 有4个不相邻的空位 存在. 前者可以暴力枚举 后者需要一些诡异的操作 最后发现前后缀和…
遍历可变数组的同时删除数组元素 NSMutableArray *copyArray = [NSMutableArray arrayWithArray:array]; NSString *str1 = @“zhangsan”; for (AddressPerson *perName in copyArray) { if ([[perName name] isEqualToString:str1]) { [array removeObject:perName]; } } 获取系统当前语言 NSStr…
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewalloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(UIScro…
这个故事告诉我们,在做一个辣鸡出题人的比赛之前,最好先看看他发明了什么新姿势= =居然直接出了道裸题 参考链接: http://codeforces.com/blog/entry/44351(原文) http://blog.csdn.net/QAQ__QAQ/article/details/53455462 这种技巧可以在O(nlogn)的时间内解决绝大多数的无修改子树询问问题. 例1 子树颜色统计 有一棵n个点的有根树,根为1,每个点有一个1~n的颜色,对于每一个点给了一个数k,要询问这个子树…
1.KMP #include<cstring> #include<algorithm> #include<cstdio> using namespace std; const int maxn=1e6; ],b[maxn+]; ]; int len1,len2,t; int main() { scanf("%d\n",&t); while(t) { --t; scanf("%s%s",b,a);//a是母串 b是匹配串 l…
Array 448.找出数组中所有消失的数 要求:整型数组取值为 1 ≤ a[i] ≤ n,n是数组大小,一些元素重复出现,找出[1,n]中没出现的数,实现时时间复杂度为O(n),并不占额外空间 思路1:(discuss)用数组下标标记未出现的数,如出现4就把a[3]的数变成负数,当查找时判断a的正负就能获取下标 tips:注意数组溢出 public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> d…
Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1935  Solved: 1053 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃). 宝物一共有n种,系统每次抛出这n种宝物的概率都相同且相互独立.也就是说,即使前k-1次系统都抛出宝物1(这种情况是有可能出现的,尽管概率非常小)…
Codeforces 566F 题目大意:给定$N$个数,任意两个数之间若存在一个数为另一个数的因数,那么这两个数存在边,求图中最大团. 分析:求一个图最大团为NP-Hard问题,一般不采用硬方法算.设$f[i]$表示数值为$i$的数的最大团,那么那么得到以下转移: $f[i]=max \{ f[j]+1 \} j|i$ //cf 566f //by Cydiater //2016.11.4 #include <iostream> #include <cstring> #inclu…
Problem Description 青年歌手大奖赛中,评委会给参赛选手打分.选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分. Input 输入数据有多组,每组占一行,每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分. Output 对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行. Sample Input 3 99 98 97 4 100 99 98 97 Sample Output 98.00 98.50…
题目描述 Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Farmer John would like to milk as many of his N (1 <= N <= 1,000) cows as possible. If the milked cows carry more than K (1 <= K <= D) different d…
Description 有些黑点,问你选择不超过 \(k\) 个黑点的路径,路径权值最大是多少. Sol 点分治. 这是qzc的论文题,不过我感觉他的翻译好强啊...我还是选择了自己去看题目... 点分治每次至少分一半,所以层数不超过过 \(logn\) 每次分治只考虑过根节点的情况. 我们想想如何统计答案. \(f[i][j]\) 表示 \(i\) 节点的子树拥有 \(j\) 个黑点最大的边权. \(g[i][j]\) 表示 \(i\) 节点的子树拥有不超过 \(j\) 个黑点的最大边权. \…
题目背景 有如下一个双人游戏:N(2 <= N <= 100)个正整数的序列放在一个游戏平台上,游戏由玩家1开始,两人轮流从序列的任意一端取一个数,取数后该数字被去掉并累加到本玩家的得分中,当数取尽时,游戏结束.以最终得分多者为胜. 题目描述 编一个执行最优策略的程序,最优策略就是使玩家在与最好的对手对弈时,能得到的在当前情况下最大的可能的总分的策略.你的程序要始终为第二位玩家执行最优策略. 输入输出格式 输入格式: 第一行: 正整数N, 表示序列中正整数的个数. 第二行至末尾: 用空格分隔的…
Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱基在该序列中正好出现5次!这样如果一个DNA序列有N种不同的碱基构成,那么它的长度一定是5N. 卡卡醒来后向可可叙述了这个奇怪的梦,而可可这些日子正在研究生物信息学中的基因匹配问题,于是他决定为这个奇怪星球上的生物写一个简单的DNA匹配程序. 为了描述基因匹配的原理,我们需要先定义子序列的概念:若从…
表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果.程序中的常量.变量名.数组访问等都是表达式 简单表达式组合成复杂表达式最常用的方法就是使用运算符(operator) 原始表达式 是最简单的表达式是「原始表达式」(primary expression).是表达式的 最小单位 ---- 不再包含其他表达式.常量.直接量.关键字.变量都是原始表达式 1.23 "hello" /pat…
因为问题的对称性,只需要考虑求出有多少点离$A$更近即可. 枚举$4$个绝对值的正负号,可以解出坐标范围. 若可以转化为二维数点,则可以统一扫描线+树状数组解决. 否则是三维数点,按一维排序,剩下两维维护KD-Tree即可. 时间复杂度$O(n\sqrt{n})$. #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int N=100010; int W,H,n…