Codeforces 4D Mysterious Present】的更多相关文章

http://codeforces.com/contest/4/problem/D 题目大意: 给出n个信封,这n个信封有长和宽,给出卡片的尺寸,求取能够装入卡片的最长的序列,序列满足后一个的长和宽一定大于前一个,求最长的这个序列的长度,并且给出一组可行解. 思路:最长上升子序列 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<iostrea…
D. Mysterious Present 题目连接: http://www.codeforces.com/contest/4/problem/D Description Peter decided to wish happy birthday to his friend from Australia and send him a card. To make his present more mysterious, he decided to make a chain. Chain here i…
D. Mysterious Present time limit per test 2 seconds memory limit per test 64 megabytes input standard input output standard output Peter decided to wish happy birthday to his friend from Australia and send him a card. To make his present more mysteri…
C - Mysterious Present Peter decided to wish happy birthday to his friend from Australia and send him a card. To make his present more mysterious, he decided to make a chain. Chain here is such a sequence of envelopes A = {a1,  a2,  ...,  an}, where…
[链接] 我是链接,点我呀:) [题意] 要求长度和宽度都严格递增(选择一个序列) 然后你一开始有一个长度和宽度 要求这个一开始所给的长度和宽度能接在你选择的一段连续的长度宽度的开头 (且保持原来的性质) 问你这个最长序列是什么.并打印 [题解] 将信件按照w,h两个关键字分别上升的顺序排序 然后做个dp f[i]表示以i作为开头能够得到的最长序列长度 并标记它下一个转移到了哪里 f[i] = max{f[j]+1} w[i]<w[j] && h[i]<h[j] [代码] im…
link:http://codeforces.com/problemset/problem/4/D #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <cctype> #include <algorithm> #include <queue> #include…
传送门 题意: 现在我们有 n 个信封,然后我们有一张卡片,并且我们知道这张卡片的长和宽. 现给出这 n 个信封的长和宽,我们想形成一个链,这条链的长度就是这条链中所含有的信封的数量: 但是需要满足①信封a可以连接信封b当且仅当信封a的长和宽分别严格小于信封b的长和宽.       ②构成这条长链的所有信封的长和宽分别严格小于卡片的长和宽. 问最多可以形成多长的链,并且输出我们选取的链的编号: 题解: DAG上的动态规划: 如果信封对于任意两个信封 a,b 满足上述条件①②,那么连一条由a指向b…
这个题和求最长递增序列的题类似,为了能输出一组可行的数据,我还用了一点儿链表的知识. Description Peter decided to wish happy birthday to his friend from Australia and send him a card. To make his present more mysterious, he decided to make a chain. Chain here is such a sequence of envelopes …
题目传送门 题目大意: 给出m个1-n的全排列,问这m个全排列中有几个公共子串. 思路: 首先单个的数字先计算到答案中,有n个. 然后考虑多个数字,如果有两个数字相邻,那么在m个串中必定都能找到这两个数字并且位置相邻.那么我们枚举1-n所有的数字,比如先枚举p1是1,那p2就是在全排列1中p1后面的数字,然后往下面找,看看下面的全排列,p2是不是也在p1的后面,如果是的话,再看p3是不是在p2的后面. 要注意的是,如果我们发现p2在p1的后面,那么我们就把p1p2连起来,合并到dp[1][p1]…
https://codeforces.com/problemset/problem/4/D 这个题目比较简单,就是一个DAG模型,这个可以看看紫书学习一下, 我这次是用dp来写的,用记忆化搜索也许更好写一点. 这个首先进行建图,用一个邻接表建图,G[i][j]表示第i个信封可以装进去第j个信封,这个再建图之前需要排序. 不然的话就不好写这个dp了,其实这里有一点点不太能理解. 建完图之后就是dp的转移, dp[i]表示从第i个信封开始可以装的最多的信封 状态转移就是 d[i]=dp[j]+1 这…
题目大意 给你一张宽为w,长为h的的贺卡,然后给你n个信封,每个信封宽为wi,长为hi,问你最多能在贺卡上嵌套多少个信封,如果某个信封i如果能够装在信封j里,当且仅当w[i]<w[j]&&h[i]<h[j] 题解 就是LIS嘛,没啥好说的... 代码: #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namesp…
用 AC自动机 来做有点想不到,捞一手就是学一手. 设 dp[ i ][ j ] 表示字符串 c 中的第 i 位到字典树上节点 j 的最大值是多少, word[ j ] 表示在节点 j 下对答案修改的值是多少. 首先可以确定是 s 和 t 塞入字典树时,他们的结尾节点的 word 值显然一个是 1 一个是 -1 ,接下来就是 fail 数组上的一波操作,对于当前节点 j ,我们的 word[ j ] 需要加上 word[ fail[ j ] ] ,即当选到当前节点 j 时候,加上可能匹配到的一个…
题意 一个长度为n的数组(初始全为0),进行m次操作. 操作:给你x,d,你任意挑选一个 i (1~n),每个数字加上 x+|i-j|*d( j 表示对应数字的下标) 问m次操作后的最大算术平均值为多少? 题解 首先对于x,每次数组的和sum都增加n*x.(Σ|i-j|)*d跟我们选的 i 有关系,如果d>0,我们就让 Σ|i-j| 尽量大,如果d<0,我们就让 Σ|i-j| 尽量小.Σ|i-j|的最大值就是 i 取0或n的时候,Σ|i-j|的最小值就是 i 取n/2的时候.维护sum就行了…
前言 从后往前刷 update 新增 \(\text{\color{red}{Mark}}\) 标记功能,有一定难度的题标记为 \(\text{\color{red}{红}}\) 色. 题单 (刷过的题就会登记在上面) 2B The least round way 只有 \(2^a*5^b\) 尾随'\(0\)'的个数为 \(\text{min}(a,b)\),dp一遍就好了 4D Mysterious Present 5C Longest Regular Bracket Sequence [C…
转自:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548 A strange lift基础最短路(或bfs)★2544 最短路 基础最短路★3790 最短路径问题基础最短路★2066 一个人的旅行基础最短路(多源多汇,可以建立超级源点和终点)★2112 HDU Today基础最短路★1874 畅通工程续基础最短路★1217 Arbitrage 货币交换 Floyd (或者 Bellman-Ford 判环)★124…
multimap的使用 YJC tricks time Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/262144 K (Java/Others) Total Submission(s): 492    Accepted Submission(s): 215 Problem Description YJC received a mysterious present. It's a clock and it looks…
zz's Mysterious Present Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1652    Accepted Submission(s): 371 Problem Description There are m people in n cities, and they all want to attend the p…
出处:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548    A strange lift基础最短路(或bfs)★ 2544    最短路  基础最短路★ 3790    最短路径问题基础最短路★ 2066    一个人的旅行基础最短路(多源多汇,可以建立超级源点和终点)★ 2112    HDU Today基础最短路★ 1874    畅通工程续基础最短路★ 1217    Arbitrage   货币交换…
H. Mysterious Photos Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/problem/H Description Everyone probably heard the rumours about the constellation of Bermuda Triangle: any person who looks to this constellation of th…
题目链接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little beaver is a beginner programmer, so informatics is his favorite subjec…
 2017 JUST Programming Contest 2.0 题目链接:Codeforces gym 101343 J.Husam and the Broken Present 2 J. Husam and the Broken Present 2 time limit per test:1.0 s memory limit per test:256 MB input:standard input output:standard output After you helped Husam…
B. Margarite and the best present 题目链接:https://codeforces.com/contest/1080/problem/B 题意: 给出一个数列:an=(-1)n,之后有询问,问 [l,r] 之间的ai和为多少. 题解:这个分情况讨论一下就可以了,区间长度的奇偶数丶左端点的奇偶数. 代码如下: #include <cstdio> #include <cstring> #include <algorithm> #include…
题目链接:http://codeforces.com/contest/379/problem/B 题目意思:给定一个有n个钱包的序列,其中第i个钱包需要投入ai个钱币,需要编写一个程序,使得在对第i个钱包不能连续投入两次钱币(其实对这句话理解得不是很好:Due to some technical malfunctions the robot cannot follow two "put a coin" instructions in a row.希望有错的话,大家能够指出)和只有三种操…
职务地址:http://codeforces.com/contest/460/problem/C 这个题是用二分枚举最小值.然后推断是否能在规定的次数内使得全部的数都达到这个值.推断的时候要用贪心的方法推断,从左往右遍历.这时候须要让每次浇花的范围尽量向右.所以当到达一个不得不浇花的地方时,要继续占用所须要的浇花次数.当浇花次数不够用的时候,就说明无法达到. 在我的代码中,c数组是记录当前到了该点的时候浇花范围的最右界.表示到了这个地方的时候少了多少次覆盖.y就代表当前这个数被多少个浇花范围覆盖…
C. Annoying Present time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Alice got an array of length nn as a birthday present once again! This is the third year in a row! And what is more disa…
[题目]E. Present for Vitalik the Philatelist [题意]给定n个数字,定义一种合法方案为选择一个数字Aa,选择另外一些数字Abi,令g=gcd(Ab1...Abx),要求满足g≠1且gcd(Aa,g)=1,求方案数取模1e9+7.2<=n<=5*10^5,2<=ai<=10^7. [算法]数论,计数问题 [题解] 考虑选择一些数字使得g≠1,容易想到枚举g值,O(n ln n)地枚举g的倍数,得到b[g]表示数列中数字为g的倍数的个数. 那么含…
题目链接:http://codeforces.com/contest/1009/problem/C 解题心得: 题意就是一个初始全为0长度为n的数列,m此操作,每次给你两个数x.d,你需要在数列中选一个位置pos,然后对于每一个位置i的数num[i]-x+d*dis(i,pos).最后要求这个数列平均值最大. 其实不需要记录这个数列中的每个数是多少,只需要记录总和就行了.如果d为正数pos选在数列越中间的位置最后的总和越大.所以需要分类讨论d的正负和数列长度的奇偶,然后用等差通项求和公式就行了.…
题目链接:http://codeforces.com/submissions/ywindysai 题目意思:有 n 朵花,每朵花都有一定的高度(第 i 朵花对应 ai),m 天之后要把这些花送给别人.不过这 m 天里可以通过淋花来让花长得尽可能高啦(当然不希望把长得矮矮的花送给人啦),每天只能淋一次,一次覆盖的范围是连续的 w 朵,淋完水后被淋的花会在当天长高 1 个单位(one height unit).现在就问,m天之后,最矮的那朵花最高能长到多高. 首先,我对这条题目完全没有想法,四个字:…
[题目链接] https://codeforces.com/contest/460/problem/C [算法] 二分 + 贪心 要求最小值最大 , 我们不妨二分最小值 , 若一盆花的高度小于二分的值 , 则将这盆花起的w盆花的高度都加一 , 具体实现时可以使用前缀和 + 差分 时间复杂度 : O(NlogV) [代码] #include<bits/stdc++.h> using namespace std; ; const int inf = 2e9; int n , m , w; int…
D. Present 题目大意:给你一个大小是n的序列,求两两之间相加进行异或之后的答案. 这个题目我并没有想到怎么写,有点偷懒于是就去看了题解.. 题解很套路... 题解: 因为这个是用到了异或,所以不可避免的肯定要用到二进制. 所以考虑进行拆位,当我要考虑第 \(i\) 位,那么比这一位高的都不会产生影响,所以对所有的数取模处理一下,然后再枚举每一个数满足条件的一个区间,这个可以二分来解决. 因为每一个数的区间是 \(0=<a_i<=2^{i+1}-1\),所以之和的区间是 \(0<…