CF417D--- Cunning Gena(序列+像缩进dp)】的更多相关文章

A boy named Gena really wants to get to the "Russian Code Cup" finals, or at least get a t-shirt. But the offered problems are too complex, so he made an arrangement with his n friends that they will solve the problems for him. The participants…
题目链接 D. Cunning Gena time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A boy named Gena really wants to get to the "Russian Code Cup" finals, or at least get a t-shirt. But the offered p…
题目链接:Codeforces 417D Cunning Gena 题目大意:n个小伙伴.m道题目,每一个监视器b花费,给出n个小伙伴的佣金,所须要的监视器数,以及能够完毕的题目序号. 注意,这里仅仅要你拥有的监视器数量大于小伙伴须要的监视器数量就可以. 求最少花费多少金额能够解决全部问题. 解题思路:dp[i],i为一个二进制数.表示完毕这些题目的最小代价,可是这里要注意,由于有个监视器的数量.普通情况下要开一个二维的状态.可是2^20次方有一百万,再多一维的数组会超内存,所以我的做法是将每一…
按monitor排序,然后状压DP... . D. Cunning Gena time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A boy named Gena really wants to get to the "Russian Code Cup" finals, or at least get a t-shirt.…
N*M矩阵.从F出发点.走完全部Y点.每个人格开支1电源点,去G点,电池充满,D无法访问.最小的开始问什么时候满负荷可以去完全部Y.Y和G总共高达15一 第一BFS所有的F.Y.G之间的最短距离. 然后一半的首发大.对于每次充电.不喜欢缩进DP推断是否可行 #include "stdio.h" #include "string.h" #include "queue" using namespace std; int inf=0x3f3f3f3f;…
括号序列(区间dp) 输入一个长度不超过100的,由"(",")","[",")"组成的序列,请添加尽量少的括号,得到一个规则的括号序列.如有多解,输出任意一个序列即可. 括号序列是这样定义而成的: 空序列是括号序列 如果S是括号序列,那么(S)和[S]也是正规括号序列 如果A和B都是正规括号序列,那么AB也是正规括号序列. 所以,只要一个括号序列不是空序列,我们一定可以把它从两端剥开,或者把它划分成两个小括号序列.设\(f[…
Cunning Gena CodeForces - 417D 题意 先将小伙伴按需要的监视器数量排序.然后ans[i][j]表示前i个小伙伴完成j集合内题目所需最少钱.那么按顺序枚举小伙伴,用ans[i-1][j]更新ans[i][j]和ans[i][j | 第i个小伙伴能完成题目的集合](更新后一种时答案要加上第i个小伙伴的费用). 由于小伙伴已经按监视器数量排序了,对于每个枚举出的小伙伴i,可以试着将其作为最后一个要求助的小伙伴,那么此时监视器上花的钱就是这个小伙伴所需监视器数量*每个的费用…
区间上的dp状态设计最基本的形式: \(F[i]\)表示以i结尾的最优值或方案数. \(F[i][k]\)表示以i结尾附加信息为k的最优值或方案数. 当然可以有多维附加信息. 转移的话往往是枚举上一个断点. \(F[i]=max \{ F[j]+ w(j+1,i) | j是一个满足转移条件的断点\}\). 另一个很常见的是:$ f[i][j]$前i个位置分成j段/选出j个的最优值. 这是最简单的一类序列上的dp bzoj1003 有m个码头和e条航线,每天航线有成本.有连续n天需要从1号码头到m…
bzoj4032/luoguP4112 [HEOI2015]最短不公共子串(后缀自动机+序列自动机上dp) bzoj Luogu 题解时间 给两个小写字母串 $ A $ , $ B $ ,请你计算: (1) $ A $ 的一个最短的子串,它不是 $ B $ 的子串 (2) $ A $ 的一个最短的子串,它不是 $ B $ 的子序列 (3) $ A $ 的一个最短的子序列,它不是 $ B $ 的子串 (4) $ A $ 的一个最短的子序列,它不是 $ B $ 的子序列 水题四合一,一题更比四题sa…
Easy 2048 Again Time Limit: 2 Seconds      Memory Limit: 65536 KB Dark_sun knows that on a single-track road (which means once he passed this area, he cannot come back again), there are some underground treasures on each area of the road which has th…
链接:problemId=5334">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5334 题意:一个长度为500的数列.每一个数可能是2,4,8.16.从第一个開始取,每一个数能够选择取或者不取.假设取了x.这个数和之前的数假设同样.那么两个数会合并成为2*x而且收起来,假设不同就把这个数收起来. 思路:比方像要凑成2048,必须拥有一个1024,512,256,128,64,32,16,8,4,2中某段从1024…
考试一看我就想到了状压dp.当时没有想到素数,以为每一位只有0~9这些数,就开始压了.后来发现是小于30,然后改到了15,发现数据一点不给面子,一个小点得数都没有,完美爆零.. 考虑到bi最多变成58,如果变成更大的数还不如变成1,而且58之内只有16个素数,所以就压这16个素数就行了.就是他们的素数因子. f[i][j]表示到第i位质因数压进去状态为j时最短序列: f[i][j|prime[k]]=min(f[i][j|prime[k]],f[i-1][j]+abs(a[i]-k)); 注意排…
题目传送门:http://codeforces.com/problemset/problem/567/F 大致题意:你有$1$到$N$的所有正整数每个数两个,现在需要你将它排成一个序列,使得序列为单峰序列(存在一个$j \in [1,2N]$满足$a_1 \leq a_2 \leq .. \leq a_j \geq a_{j+1} ... \geq a_{2N}$),并且满足输入中给出的$K$个约束条件.$N \leq 35 , K \leq 100$ 因为序列要满足单峰,所以考虑从小到大在没有…
「长乐集训 2017 Day10」划分序列 题目描述 给定一个长度为 n nn 的序列 Ai A_iA​i​​,现在要求把这个序列分成恰好 K KK 段,(每一段是一个连续子序列,且每个元素恰好属于一段),并且每段至少有一个元素,使得和最大的那一段最小. 请你求出这个最小值. 输入格式 第一行两个整数 n,K n, Kn,K,意义见题目描述.接下来一行 n nn 个整数表示序列 Ai A_iA​i​​. 输出格式 仅一行一个整数表示答案. 样例 样例输入 9 4 1 1 1 3 2 2 1 3…
划分序列 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output 仅一行一个整数表示答案. Sample Input 9 4 1 1 1 3 2 2 1 3 1 Sample Output 5 HINT Main idea 将序列分为若干段,使得和最大的那一段最小,值可以为负. Source 首先,显然都想到了二分答案. 我们先把都为正数或负数的情况写了:Ai>=0的时候求出最小的划分段数x,若x<=K则表示当前答案可…
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5600 解决:1637 题目描述: 给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的"序列和". 对于S的所有非空连续子序列T,求最大的序列和. 变量条件:N为正整数,N≤1000000,结果序列和在范围(-2^63,2^63-1)以内. 输入: 第一行为一个正整数N,第二行为N个整数,表示序列中的数. 输出: 输入可能包括多组数据,对于每一组输入数据, 仅输出一个数,表示最大序列和. 样例输入…
题目: 题目背景 161114-练习-DAY1-AHSDFZ T2 题目描述 有 N 辆列车,标记为 1,2,3,…,N.它们按照一定的次序进站,站台共有 K 个轨道,轨道遵从先进先出的原则.列车进入站台内的轨道后可以等待任意时间后出站,且所有列车不可后退.现在要使出站的顺序变为 N,N-1,N-2,…,1,询问 K 的最小值是多少.…
小明系列问题--小明序列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1553    Accepted Submission(s): 457 Problem Description 大家都知道小明最喜欢研究跟序列有关的问题了,但是也就由于这样,小明差点儿已经玩遍各种序列问题了.可怜的小明苦苦地在各大站点上寻找着新的序列问题,但是找来…
序列 Description 给定长度为n的序列:a1,a2,-,an,记为a[1:n]. 类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,-,ar-1,ar.若1≤l≤s≤t≤r≤n,则称a[s:t]是a[l:r]的子序列. 现在有q个询问,每个询问给定两个数l和r,1≤l≤r≤n,求a[l:r]的不同子序列的最小值之和. 例如,给定序列5,2,4,1,3,询问给定的两个数为1和3,那么a[1:3]有6个子序列a[1:1],a[2:2],a[3:3],a[1:2],a[2:3]…
也许更好的阅读体验 \(\mathcal{Description}\) 有一个长度为 \(n\)的自然数序列 \(a\),要求将这个序列分成至少 \(m\) 个连续子段 每个子段的价值为该子段的所有数的按位异或 要使所有子段的价值按位与的结果最大,输出这个最大值 \(T\)组询问 \(T\leq 10,n,m\leq 1000,a_i\leq 2^{30}\) \(\mathcal{Solution}\) 实际上数据范围可开大很多 我们贪心的一位一位的确定最终答案,即看当前考虑的位能否为\(1\…
题目:http://codeforces.com/contest/1150/problem/D 老是想着枚举当前在给定字符串的哪个位置,以此来转移. 所以想对三个串分别建 trie 树,然后求出三个trie树上各选一个点的答案.那么从“在三个trie树的根,在给定字符串的0位置”开始扩展. 当然 TLE 了. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #…
#include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; struct node { int w, s; int index; //储存标号 } mouse[]; //小鼠的信息 //先体重,后速度 bool cmp(node a,node b) { if(a.w==b.w) return a.s<b.s; return a…
子序列和子串不一样.子串要求必须连续,而子序列不需要连续. 比如说\(\{a_1,a_2\dots a_n\}\),他的子串就是\(\{a_i,a_{i+1},\dots, a_j|1\leq i\leq j\leq n\}\),而子序列就是\(\{a_{t_1},a_{t_2}\dots a_{t_i}|t_1<t_2<\dots<t_n \}\)只要子序列里面元素的顺序仍然保持原序列里面的顺序就可以了,不要求连续 目录 最长上升子序列 $\Theta(n^2)$ DP P1020 […
题面 我编不下去了! 给出 n n n 个点,第 i i i 个点的度数限制为 a i a_i ai​,现在需要选出 x x x 个点构成一颗树,要求这 x x x 个点中每个点的度数不超过这个点的 a i a_i ai​ 值,求 x = 1 , 2 , - , n x=1,2,\ldots,n x=1,2,-,n 时的方案数. 两种方案不同,当且仅当选出的点集不同或者连边的方式不同. 输入格式 第一行一个正整数 T T T,代表有 T T T 组数据.每组数据第一行一个正整数 n n n 第二…
告诉你若干个(<=100)武器的花费以及武器能消灭的怪物编号,问消灭所有怪物(<=100)的最小花费...当然每个武器可以无限次使用,不然这题就太水了╮(╯▽╰)╭ 这题当时比赛的时候连题都还没看就结束了....赛后一看,果断是重复覆盖... 不过之后一直没敲...然后今天算是补回来吧,同时也把好久以前学的DLX复习一下... DLX的话,双向十字链表...具体的话,百度Google什么的dancing links... 一开始敲的时候还是挺顺利的,因为之前做过几次重复覆盖都是直接拿精确覆盖的…
Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the homework. If Ignatius hands in the homework after the deadline, the teacher will r…
传送门 不考虑质数的条件,可以考虑到一个很明显的$DP:$设$f_{i,j}$表示选$i$个数,和$mod\ p=j$的方案数,显然是可以矩阵优化$DP$的. 而且转移矩阵是循环矩阵,所以可以只用第一行的数字代替整个矩阵.当然了这道题$p \leq 100$矩阵比较小也可以直接做. 然后考虑至少要一个质数的条件,发现就是所有数参与$DP$的答案减去所有合数参与$DP$的答案,两次算出来相减即可. #include<bits/stdc++.h> #define ll long long //Th…
问题 B: [例9.3]求最长不下降序列 时间限制: 1 Sec  内存限制: 128 MB提交: 318  解决: 118[提交][状态][讨论版][命题人:quanxing] 题目描述 设有由n(1≤n≤200)n(1≤n≤200)个不相同的整数组成的数列,记为:b(1).b(2).…….b(n)b(1).b(2).…….b(n)且b(i)≠b(j)(i≠j)b(i)≠b(j)(i≠j),若存在i1<i2<i3<…<iei1<i2<i3<…<ie 且有b…
题面 luogu 题解 \(Cdq分治+dp\) \(mx[i],mn[i]\)分别表示第\(i\)位最大,最小能取到多少 那么有 \(j < i\) \(mx[j] \le a[i]\) \(a[j] \le mn[i]\) 然后就有了50分 \(O(n^2)\)的\(dp\) 上面那个东西是个三维偏序, \(Cdq\)优化一下即可. Code 50pts #include<bits/stdc++.h> #define LL long long #define RG register…
4553: [Tjoi2016&Heoi2016]序列 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 260  Solved: 133[Submit][Status][Discuss] Description 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他.玩具上有一个数列,数列中某些项的值 可能会变化,但同一个时刻最多只有一个值发生变化.现在佳媛姐姐已经研究出了所有变化的可能性,她想请教你 ,能否选出一个子序列,使得在任意一种…