(new )   war2

题解:总体数据而言,我们很容易想到着就是DP啊,我们DP数组,用状态压缩,代表有那些点已经被占领过了,代表上一次我占的是那个。对于每一次状态转移,若当前我们要占领的Portal在占领后有加分,那么就转移加分与基础值的和,否则只转移基础值。最后判断一下当代表的状态已经有占领个了,就记录下当前的最大值。

var
n,m,tot,cnt,ans,x,y,c:int64;
i,j,k:longint;
a:array[-100..100]of int64;
f,b:array[0..1<<18,0..20]of int64;// 2^18
function max(x,y:int64):int64;
begin
if x>y then exit(x) else exit(y);
end;
begin
readln(n,m,k);
for i:=1 to n do read(a[i]);
readln;
for i:=1 to k do
begin
readln(x,y,c);
inc(b[x,y],c);
end;
for i:=1 to n do
f[1<<(i-1)][i]:=a[i];
tot:=(1<<n)-1;
for k:=0 to tot do //every state
begin
cnt:=0;
for i:=1 to n do
begin
if ((1<<(i-1)) and k)>0 then
begin
inc(cnt);
// if k=7 then writeln(i,' ',cnt);
// writeln(cnt);
for j:=1 to n do
if (1<<(j-1))and k=0 then
f[k or (1<<(j-1))][j]:=max(f[k or (1<<(j-1)) ][j],f[k,i]+b[i,j]+a[j]);// 1000-->1100,当前点占了所得到的值
end;
end;
if cnt=m then
begin
for i:=1 to n do
if k and (1<<(i-1))>0 then ans:=max(ans,f[k,i]);
// writeln(cnt);
end;
end;
writeln(ans);
end.

war2 洛谷模拟赛day2 t3 状压的更多相关文章

  1. 【题解】洛谷P3959 [NOIP2017TG] 宝藏(状压DP+DFS)

    洛谷P3959:https://www.luogu.org/problemnew/show/P3959 前言 NOIP2017时还很弱(现在也很弱 看出来是DP 但是并不会状压DP 现在看来思路并不复 ...

  2. 6.28 NOI模拟赛 好题 状压dp 随机化

    算是一道比较新颖的题目 尽管好像是两年前的省选模拟赛题目.. 对于20%的分数 可以进行爆搜,对于另外20%的数据 因为k很小所以考虑上状压dp. 观察最后答案是一个连通块 从而可以发现这个连通块必然 ...

  3. 洛谷 P2473 [SCOI2008]奖励关(状压dp+期望)

    题面 luogu 题解 \(n \leq 15\) 状压 \(f[i][S]\)表示第\(i\)轮,吃过的集合为\(S\) 正着转移好像有点复杂 考虑逆推转移(正着转移应该也行) \(f[i][S]\ ...

  4. 洛谷 P1278 单词游戏 【状压dp】

    题目描述 Io和Ao在玩一个单词游戏. 他们轮流说出一个仅包含元音字母的单词,并且后一个单词的第一个字母必须与前一个单词的最后一个字母一致. 游戏可以从任何一个单词开始. 任何单词禁止说两遍,游戏中只 ...

  5. 洛谷P2761 软件补丁问题 [状压DP,SPFA]

    题目传送门 软件补丁问题 题目描述 T 公司发现其研制的一个软件中有 n 个错误,随即为该软件发放了一批共 m 个补丁程序.每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又 ...

  6. 洛谷P2704 [NOI2001]炮兵阵地 [状压DP]

    题目传送门 炮兵阵地 题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图 ...

  7. 洛谷P2761 软件补丁问题(状压DP,SPFA)

    题意 描述不清... Sol 网络流24题里面怎么会有状压dp?? 真是狗血,不过还是简单吧. 直接用$f[sta]$表示当前状态为$sta$时的最小花费 转移的时候枚举一下哪一个补丁可以搞这个状态 ...

  8. 洛谷 P3622 [APIO2007]动物园【状压dp】

    看成网络流建图想了好久... 实际上5个是可以状压的 设f[i][k]为到第i个围栏状态为k的方案数,因为考虑到重复,设g[i][k]记录i开始,状态为k的孩子有几个 状态转移很好想:f[j][k]= ...

  9. 洛谷P2831 愤怒的小鸟——贪心?状压DP

    题目:https://www.luogu.org/problemnew/show/P2831 一开始想 n^3 贪心来着: 先按 x 排个序,那么第一个不就一定要打了么? 在枚举后面某一个,和它形成一 ...

随机推荐

  1. 位运算(Bit Manipulation)在算法中的应用

    最近刷LettCode,遇到几个没思路的算法题,都是关于位运算的 # 136 Single Number Given a non-empty array of integers, every elem ...

  2. 如果使用没有提供选项值的 SqlDependency,必须先调用 SqlDependency.Start(),然后才能执行添加到 SqlDependency 实例中的命令

    如标题错误,解决办法及出现错误情况,见图片 出现如图错误

  3. U-Mail邮件群发:邮件营销最全建议

    U-Mail专注于邮件营销平台研发工作多年了,服务企业数千家,拥有上万IP,在国内外基础设施建设上投资巨大,技术团队精湛.客服人员热情,赢 得了业界的好评和用户信任.有一些用户给我们发来邮件或来电咨询 ...

  4. 【我所认知的BIOS】—> uEFI AHCI Driver(8) — Pci.Read()

    [我所认知的BIOS]-> uEFI AHCI Driver(8) - Pci.Read() LightSeed 6/19/2014 社会一直在变.不晓得是不是社会变的太苦开,而我没变所以我反而 ...

  5. 「bzoj 3944: Sum」

    题目 杜教筛板子了 #include<iostream> #include<cstring> #include<cstdio> #include<cmath& ...

  6. PHP时间戳和日期相互转换(转载)

    在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳可以使用strtotime()函数实现,下面我来给大家举例说明. 1.php中时间转换函数 strtotime ...

  7. MVC身份验证Attribute简易版

    public class MemberValidationAttribute : AuthorizeAttribute { protected override bool AuthorizeCore( ...

  8. 10.vue router 带参数跳转

    vue router 带参数跳转 发送:this.$router.push({path:'/news',query:{id:row.id}}) 接收:var id=this.$route.query. ...

  9. 选择排序_c++

    选择排序_c++ GitHub 文解 选择排序的核心思想是对于 N 个元素进行排序时,对其进行 K = (N - 1) 次排序,每次排序从后(N + 1 - K)个数值中选择最小的元素与以 (K - ...

  10. eclipse中误删tomcat后,文件都报错,恢复server时无法选择tomcat7.0解决办法

    创建Tomcat v7.0 Server 不能进行下一步. 解决方法: 1.退出 eclipse 2.到[工程目录下]/.metadata/.plugins/org.eclipse.core.runt ...