HDU 1422 重温世界杯 DP题】的更多相关文章

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1422 解题报告:DP题,要使旅行的城市最多,关键是要选出一个城市作为开始,以这个城市作为开始的城市时,能使拥有的钱能旅行的城市最多,我的做法是把前n-1个城市添加到n个城市的数组后面,这样就不用考虑环的问题了, #include<cstdio> #include<cstring> #include<iostream> using namespace std; ],l[];…
点我看题目 题意 : 中文题不详述. 思路 : 根据题目描述及样例可以看出来,如果你第一个城市选的是生活费减花费大于等于0的时候才可以,最好是多余的,这样接下来的就算是花超了(一定限度内的花超),也可以通过前边的剩余来补充进去,就可以多玩一个.所以先存一下每个城市的生活费减去花费的剩余,然后从非负开始找,找一个数组存一下现在还剩下的多余花费,还要在找一个数组存一下当前点用的天数,可以从头开始重新选择新的城市. //HDU 1422 #include <stdio.h> #include <…
题目链接 Problem Description 世界杯结束了,意大利人连本带利的收回了法国人6年前欠他们的债,捧起了大力神杯,成就了4星意大利. 世界杯虽然结束了,但是这界世界杯给我们还是留下许多值得回忆的东西.比如我们听到了黄名嘴的3分钟激情解说,我们懂得了原来可以向同一个人出示3张黄牌,我们还看到了齐达内的头不仅能顶球还能顶人---- 介于有这么多的精彩,xhd决定重温德国世界杯,当然只是去各个承办世界杯比赛的城市走走看看.但是这需要一大比钱,幸运的是xhd对世界杯的热爱之情打动了德国世界…
题目中说只需按照所给顺序,不论起点,输出能连续旅游的最多的城市 就是不论起点这句,我就卡住了.. 看了别人的题解,循环个2n-1次便是把所有的起点都考虑进去了. 更详细的解释在代码的注释里. //#define LOCAL #include <iostream> #include <cstdio> #include <cstring> using namespace std; + ; int city[maxn]; int main(void) { #ifdef LOC…
传送门 题目大意: 给一串数,又正有负,求每一个前缀都大于0的最长子串长度. 题目分析: 直接贪心:每次左端点向右推1,不断延伸右端点,更新答案. code #include<bits/stdc++.h> using namespace std; typedef long long ll; namespace IO{ inline ll read(){ ll i = 0, f = 1; char ch = getchar(); for(; (ch < '0' || ch > '9'…
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1422 Problem Description 世界杯结束了,意大利人连本带利的收回了法国人6年前欠他们的债,捧起了大力神杯,成就了4星意大利. 世界杯虽然结束了,但是这界世界杯给我们还是留下许多值得回忆的东西.比如我们听到了黄名嘴的3分钟激情解说,我们懂得了原来可以向同一个人出示3张黄牌,我们还看到了齐达内的头不仅能顶球还能顶人---- 介于有这么多的精彩,xhd决定重温德国世界杯,当然只是去各个承…
简单题. #include <stdio.h> #define MAXN 100005 int wi[MAXN], li[MAXN]; ]; int main() { int n, total, max; int i, tmp; while (scanf("%d", &n) != EOF) { ; i<n; ++i) { scanf("%d %d", &wi[i], &li[i]); diff[i] = diff[i+n]…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符串用键盘输入到电脑中,一开始的时候大写锁定是关闭的,并且要求结束的时候也是关闭的,然后让你求输入这些字符串最少需要按多少次键盘(包括Cap Lock键和Shift键) 一个典型的dp题,定义一个一维数组就够了,然后dp[i]的含义的输入到第i个字符时需要按键的最少次数.然后递推公式如下: dp[i]…
解题报告:题目大意,给你n个球,要将这n个球从下到上按层次排列,要求同一个层次的的每一个分支的数量都必须相等,问有多少种排列的方法. 此题的一个DP题,假设现在有n个球,要将这n个球排列好,我们就必须将n个球的问题转化成小于n个球的子问题 ,我们可以很明显地观察到,对于每一种排列 的方法,它的最上面的那一层总是只有一个球,所以我们就可以这样出发,将这n个球先减掉一个球,还剩下n-1个球,然后就是下一层怎么排列 的问题了.由于现在还剩下n-1个球,那么我们现在要想的就是把这n-1个球应该怎么排列,…
Robberies 点击打开链接 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱  最脑残的是把总的概率以为是抢N家银行的概率之和- 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);  正确的方程是:f[j]=max(f[j],f[j-q[i].money]*q[i].v)  当中,f[j]表示抢j块大洋的最大的逃脱概率,条件是f[j-q[i].money]可达,也就…