Hdu 4293 DP
题意:
n个人说自己前面有多少人 后面有多少人
求出说真话人数最多的情况
每个样例有 一个 n 表示n个人
接下来 n 行有a b 表示他前面的人数和后面的人数
思路:
如果已经知道了其中一组的人数~
就往前找..找在这一组之前与这一组的话不矛盾的最多人数
Tips:
用dp[ i ][ j ] 表示从第 i+1 个人到第 j 个人为一组的时候前j个人中说真话最多的人
用tt[ i ][ j ] 表示从第 i 个人到第 j 个人之间站了多少人
用an[ i ]表示到第 i 个人前面说真话的人最多人数
tt[ a ][ b ]的人数不应该多于 n-(b-a+1)
Code:
1 #include <stdio.h> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 int dp[510][510]; 7 int tt[510][510], an[510]; 8 9 int main() 10 { 11 int i, j, k; 12 int n, a, b; 13 while(scanf("%d", &n) != EOF) 14 { 15 memset(dp, 0, sizeof(dp)); 16 memset(an, 0, sizeof(an)); 17 memset(tt, 0, sizeof(tt)); 18 19 for(i = 0; i < n; ++i) { 20 scanf("%d %d", &a, &b); 21 if(a+b < n && tt[a][n-b] < (n-a-b)) 22 tt[a][n-b]++; 23 } 24 25 for(i = 1; i <= n; ++i) 26 for(j = 0; j < i; ++j) { 27 dp[j][i] = an[j]+tt[j][i]; 28 an[i] = max(an[i], dp[j][i]); 29 } 30 31 printf("%d\n", an[n]); 32 } 33 return 0; 34 }
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4293
转载于:https://www.cnblogs.com/Griselda/archive/2012/09/18/2692393.html
Hdu 4293 DP相关推荐
- HDU 5928 DP 凸包graham
给出点集,和不大于L长的绳子,问能包裹住的最多点数. 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量.也 ...
- hdu 1171 dp(多重背包)
View Code //hdu 1171 dp(多重背包)//题意:把所有物品的价值尽量分为相等的两份,不能等分的话 //后面那份可以稍小于前面的 //求出价值总和后,令价值的一半为背包容量,让背包尽 ...
- hdu 4293 Groups DP
http://acm.hdu.edu.cn/showproblem.php?pid=4293 题意: 有n个人分成了若干组走在一条林荫道路上,导游为了能够确定人数,要求每个人喊出自己所在的队伍前边有多 ...
- HDU 4293 Groups (线性dp)
OJ题目:click here~~ 题目分析:n个人分为若干组 , 每一个人描写叙述其所在的组前面的人数和后面的人数.求这n个描写叙述中,最多正确的个数. 设dp[ i ] 为前i个人的描写叙述中最多 ...
- HDU 4832(DP+计数问题)
HDU 4832 Chess 思路:把行列的情况分别dp求出来,然后枚举行用几行.竖用几行,然后相乘累加起来就是答案 代码: #include <stdio.h> #include < ...
- hdu 5086(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5086 题目大意:给出长度为n的数组,然后要求累计里面的每个子串的和. 解题思路:这道题直接枚举肯定不行 ...
- hdu 2059(dp)
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Des ...
- HDU 3646 DP + 二分
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3646 题意:你有N把武器,每把武器可以对敌人造成一定的伤害(et:攻击力500,敌人血量为200,杀死敌人 ...
- hdu 3905(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3905 思路:dp[i][j]表示前i分钟,睡了j分钟收获的的最大价值,并记tmp_dp[i][j]为从 ...
最新文章
- PCB的EMC设计之PCB叠层结构
- 三门问题(蒙提霍尔悖论)的Python代码实现
- ArrayList Iterator remove java.lang.UnsupportedOperationException
- 技术性图文还原那些腿长得能改变地球引力场的TB奇女子
- JS获取页面元素并修改
- 在C++中反射调用.NET(二)
- 20210325:力扣递归,回溯类型题目合集
- android 扫描照片功能,巧把安卓手机打造成扫描仪:拍照识别文档、手写笔记转PDF(图)...
- 说说TCP,UDP和socket,Http之间联系和区别
- 微软 smtp 服务器,配置 SMTP 服务器
- 面试官:谈一下你对Vue组件化的理解
- python教程系列(三.6.2、XML)
- 折线统计html,canvas制作简单的HTML图表,折线或者矩形统计(原创)
- STL-Intelligent IME
- C语言实现反汇编【微机原理】
- 【Web前端】京东商城项目实战HTML+CSS+JavaScript
- Linux7 下Hadoop集群用户管理方案之五 安装Hadoop集群遇到的坑
- RS/CQI/SINR/RSRP/RSSI都是什么意思?
- Yii Framework 开发教程(32) Zii组件-GridView示例
- DPC_WATCHDOG_VIOLATION蓝屏分析
热门文章
- cuda版本查看_ubuntu安装CUDA
- oracle系统库名,Oracle 札记之 一:数据库名,数据库实例名,数据库域名,操作系统环境变量...
- java 连接ldap_ldap java 连接demo
- linux系统硬件配置查看方法
- 串传送指令MOVSB MOVSW
- 数据结构--链式线性表
- gp的分布、分区策略(概述)
- 《dp补卡——多重背包》
- LeetCode 572. 另一个树的子树 思考分析
- java treemap_Java TreeMap lastKey()方法与示例