Kefa and Dishes(CodeForces580D)【状态压缩DP】
状态压缩DP裸题,比赛的时候没反应过来,进行了n次枚举起点的solve,导致超时。
#include<cstdio>
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
int n,m,k;
int cost[][],val[];
int a,b,c;
long long dp[<<][];
vector<int> hhh[];
int judge(int x){
int res=;
while(x!=){
if(x&)
res++;
x>>=;
}
return res;
}
void init(){
for(int i=;i<(<<);i++)
hhh[judge(i)].push_back(i);
}
long long solve(){
for(int s=;s<(<<n);s++)
fill(dp[s],dp[s]+n,);
for(int i=;i<n;i++)
dp[<<i][i]=-val[i];
for(int jj=;jj<=n;jj++){
for(int jjj=;jjj<hhh[jj].size();jjj++){
int j=hhh[jj][jjj];
for(int i=;i<n;i++){
if(dp[j][i]==||(j&(<<i))==)
continue;
int tt=((<<n)-)^(j);
for(int k=;k<n;k++)
if((j&(<<k))==)
dp[j|(<<k)][k]=min(dp[j|(<<k)][k],dp[j][i]+cost[i][k]-val[k]);
}
}
}
long long res=;
for(int j=;j<=(<<n)-;j++){
if(judge(j)==m)
for(int i=;i<n;i++)
res=min(res,dp[j][i]);
}
return res;
}
int main(){
scanf("%d%d%d",&n,&m,&k);
init();
for(int i=;i<=n;i++)
scanf("%d",&val[i-]);
while(k--){
scanf("%d%d%d",&a,&b,&c);
cost[a-][b-]=-c;
}
long long ans=;
printf("%lld",-solve());
return ;
}
Kefa and Dishes(CodeForces580D)【状态压缩DP】的更多相关文章
- hoj2662 状态压缩dp
Pieces Assignment My Tags (Edit) Source : zhouguyue Time limit : 1 sec Memory limit : 64 M S ...
- POJ 3254 Corn Fields(状态压缩DP)
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4739 Accepted: 2506 Descr ...
- [知识点]状态压缩DP
// 此博文为迁移而来,写于2015年7月15日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w6jf.html 1.前 ...
- HDU-4529 郑厂长系列故事——N骑士问题 状态压缩DP
题意:给定一个合法的八皇后棋盘,现在给定1-10个骑士,问这些骑士不能够相互攻击的拜访方式有多少种. 分析:一开始想着搜索写,发现该题和八皇后不同,八皇后每一行只能够摆放一个棋子,因此搜索收敛的很快, ...
- DP大作战—状态压缩dp
题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...
- 状态压缩dp问题
问题:Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Ev ...
- BZOJ-1226 学校食堂Dining 状态压缩DP
1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MB Submit: 588 Solved: 360 [Submit][ ...
- Marriage Ceremonies(状态压缩dp)
Marriage Ceremonies Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ...
- HDU 1074 (状态压缩DP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目大意:有N个作业(N<=15),每个作业需耗时,有一个截止期限.超期多少天就要扣多少 ...
随机推荐
- windows内核情景分析之中断处理(毛德操)[转]
中断处理 每个cpu有一张中断表,简称IDT. IDT的整体布局:[异常->空白->5系->硬](推荐采用7字口诀的方式重点记忆) 异常:前20个表项存放着各个异常的描述符(IDT表 ...
- quartz.net 执行后台任务
... https://www.cnblogs.com/zhangweizhong/category/771057.html https://www.cnblogs.com/lanxiaoke/cat ...
- epoll反应堆
/* * epoll基于非阻塞I/O事件驱动 */ #include <stdio.h> #include <sys/socket.h> #include <sys/ep ...
- LeetCode687----最长同值路径
给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 示例 1: 输入: 5 / \ 4 5 / ...
- mybatis用Map<Long,List<String>>作为参数
mapper.xml文件里的<insert id="insertByMap" parameterType="java.util.Map"> inse ...
- IDEA Method definition shorthands are not supported by current JavaScript version
sentinel-dashboard前端用到了AngularJS v1.4.8,在IDEA里修改js,触发js验证时有一些js文件会出现红色波浪线. 在代码行里鼠标一上去提示信息:Method def ...
- 【JDBC】使用Spring提供的JDBCTemplate通过PrepareStatement向MySql数据库插入千万条数据,耗时32m47s,速度提升有限
数据库环境还和原来一样,只是从Statement换成了PrepareStatement,都说PrepareStatement因为预编译比Statement快,但是实际运行真快不了多少. 代码如下: p ...
- Linux下 安装jdk8
一.文件准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http://www.oracle.com/technetwork/java/javase/do ...
- VSCode查询快捷键对应功能技巧
- Django之通用视图
01-介绍 通用视图把视图开发中常用的写法和模式抽象出来,让你编写少量代码就能快速实现常见的数据视图.显示对象列表就是这样一种任务. Django 自带的通用视图能实现下述功能: 1.列出对象并显示单 ...