<SDOI2009>学校食堂
我.
调了快一天
因为一个位置错误的感叹号
:-)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
狗dp
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 99999999
using namespace std; int c,n;
int t[],b[],dp[][<<][];//dp 前i-1个人已经打完饭了,第i个人及其后面7个人的状态,上一次打饭的人与i的相对距离(向前为-向后为+) 实际运用时由于不能为负数 所以要+8 int time(int a,int b){if(a==)return ; return t[a]^t[b];}//题目要求的时间计算 int main()
{
int i,j,k;
scanf("%d",&c); for(int l=;l<=c;l++)
{
scanf("%d",&n);
for(i=;i<=n;i++) scanf("%d%d",&t[i],&b[i]); for(i=;i<=n+;i++)
for(j=;j<(<<);j++)
for(k=-;k<=;k++)
dp[i][j][k+]=inf;
dp[][][]=;// k -1+8 //初始化 for(i=;i<=n;i++)//枚举n个人
for(j=;j<(<<);j++)//枚举状态
for(k=-;k<=;k++)//枚举相对位置
if(dp[i][j][k+]<inf)//没轮到呢.怎么排他后面的...?!
{
if(j&) dp[i+][j>>][k+]=min(dp[i+][j>>][k+],dp[i][j][k+]);else//如果已经打完了 就可以 扔了emm 下一个还未打的时间与上一个打完时间相同
{
int r=inf;//忍受范围
for(int m=;m<=;m++)//枚举下一个人
{
if(!((j>>m)&))//判断后面的人是否吃完了
{
if(i+m>r)break;//超出了忍耐限度!
r=min(r,i+m+b[i+m]);//更新目前最小忍耐限度
dp[i][j+(<<m)][m+]=min(dp[i][j+(<<m)][m+],dp[i][j][k+]+time(i+k,i+m));//emm让他有饭(雾
}
}
}
}
int ans=inf;
for(i=;i<;i++)ans=min(ans,dp[n+][][i]);//全部人都有饭啦!
printf("%d\n",ans);
}
return ;
}
<SDOI2009>学校食堂的更多相关文章
- BZOJ 1226: [SDOI2009]学校食堂Dining
1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 730 Solved: 446[Submit][ ...
- 【题解】Luogu P2157 [SDOI2009]学校食堂
原题传送门:P2157 [SDOI2009]学校食堂 一看题目就知道是状压dp 设f[i][j][k]表示第1到i-1个人都吃完了饭,第i个人以及后面的7个人是否打饭的状态为j,当前最后打饭的人的编号 ...
- 【BZOJ1226】[SDOI2009]学校食堂Dining 状压DP
[BZOJ1226][SDOI2009]学校食堂Dining Description 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满 ...
- 1226: [SDOI2009]学校食堂Dining - BZOJ
Description 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以 ...
- bzoj 1226 [SDOI2009]学校食堂Dining(状压DP)
Description 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以 ...
- [SDOI2009]学校食堂Dining
题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...
- P2157 [SDOI2009]学校食堂
题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...
- P2157 [SDOI2009]学校食堂 (dp+状态压缩)
题目链接:传送门 题目: 题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人 ...
- P2157 [SDOI2009]学校食堂Dining
题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...
- 【bzoj1226】【[SDOI2009]学校食堂Dining】状压dp
(上不了p站我要死了,侵权度娘背锅) Description 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人 ...
随机推荐
- fscanf的用法
fscanf用于读取字符串数据流,遇到空白字符(空格' '; 制表符'\t'; 新行符'\n')就停止,若要读取完整的一行数据,可以使用格式控制("%[^\n]%*c"),或者使用 ...
- 关于sql更新最后一个逗号的去除或则最后的and的去除
去除最后的逗号substr_replace($update_sql ,"",-1);去除最后的and substr_replace($update_sql ,"" ...
- HDU 1257最少拦截系统[动态规划]
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1257 最 ...
- 8.windows-oracle实战第八课 --管理权限和角色
权限: 如果要执行某种特定的数据库操作,就要赋予系统的权限: 如果要执行访问其他方案的对象,就要赋予对象的权限. 1.创建ken和tom用户 create user ken ide ...
- ofo小黄车做信息流!这到底算怎么回事?
不得不说,现在ofo绝对处于商业处境和舆论的风口浪尖上.近段时间以来,ofo各种大动作实在是让业界和大众都"看不懂".但毋庸置疑的是,ofo的种种举措都是为了"自救&qu ...
- IE浏览器弹出的文件下载工具条实现自动另存为
IE浏览器中如果有一个文件可以下载,用鼠标点击一下文件的超链接,会在IE浏览器下方出现一个工具条,工具条上主要有“打开” “保存”两个按钮. 如果点击“保存”按钮,会把附件保存到系统的“下载”或“Do ...
- shell_切割日志
可以修改的:1.日志存放目录:logdir='/data/logs/'2.每个类型日志保留个数:savefiles=30 #!/bin/bashnum=$(date -d"+1 day ag ...
- 移植linux4.14内核到四核Exynos4412开发板
最近法师收到了很多留言,其中有一部分问法师什么时候更新,还有一大部分问法师我是买迅为的IMX6UL精英版好呢还是买4412精英版好呢,因为我们这俩个都不贵.法师的建议的是入手4412!为什么呢? 第一 ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块角色类(Sprite)移动与碰撞
角色类(Sprite) Py game 游戏中有许多组件会重复用到,比如射击宇宙飞船的游戏中,外星宇宙 飞船可能多达数十艘 , 通过创建“角色类”,可以生成多个相同的对象. Py game 角色类是游 ...
- TCP\IP协议簇-各层主要协议帧格式
本文只是对各协议的概要,详细请参考rfc文件. 官方下载地址:https://tools.ietf.org/rfc/index rfc中文:http://man.chinaunix.net/devel ...