博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Winniechen’s test1
阅读量:4973 次
发布时间:2019-06-12

本文共 731 字,大约阅读时间需要 2 分钟。

https://winniechen.cn/wp-content/uploads/2018/08/Winniechens_test_1.rar

放水练习赛,主要考察最短路,DP,状态压缩等知识点

题解:

T1 公平

部分分我就不说了,反正题也不难,直接说正解吧。建图,跑K次最短路求出到每个节点这K种物品的最短路。之后,每个点用一个堆,取前S大即可!

Codeforces 986 A Fair

T2 寻宝游戏

这个题是一个非常棒的DP,我们可以这样设:f[i][j][k][l]表示走到j,使用了K次机会,还有l个库存,每次跨行转移的时候,O(n)统计从第i行,j+1到n和第i+1行1到j-1选择多少个交换即可。之后不跨行转移直接转移即可。

总时间复杂度  O(n^3K^2) 

lydsy05 T2 BZOJ 5359

T3 分裂

这个题很好啊,比起什么裸的状压DP高多了!

我们可以考虑,什么时候答案最大:全合并,之后再分裂

这样,我们必定可以得到答案,也就是说答案必定小于n+m

那么我们可以考虑,什么时候能够使答案更小:就是n中去一些,m中取一些,它们的和相等的时候,ans-=2;

这样,我们就可以考虑状态f[S][s]表示,在n中取状态S,m中取状态s的最多和相等部分

之后转移可以从f[S-1<<i-1][s]或者f[S][s-1<<i-1]转移,之后判断sum[S]和sum[s]是否相等,相等f[S][s]+=2;

最后答案为n+m-f[(1<<n)-1][(1<<m)-1];

时间复杂度  O(n*2^{n+m}) 

BZOJ 2064

转载于:https://www.cnblogs.com/Winniechen/p/9525829.html

你可能感兴趣的文章
20145304 实验四实验报告
查看>>
直联和间联的区别——直连和间连的区别
查看>>
mysql多字段模糊查询
查看>>
IIS7日志文件位置
查看>>
SQL锁死解决办法
查看>>
python循环
查看>>
Swift - 10 - assert(断言)
查看>>
Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round)A. Friends Meeting
查看>>
LeetCode "Wiggle Subsequence" !
查看>>
团队作业第二次—项目选题报告
查看>>
hadoop+hive+hbase+zookeeper安装
查看>>
final, static
查看>>
jq工具函数(六)字符串操作函数
查看>>
SSH连接Linux
查看>>
utf-8编码的csv文件 Excel 打开乱码 输出前加 0xEF,0xBB,0xBF 三个char
查看>>
AC日记——配对碱基链 openjudge 1.7 07
查看>>
AC日记——魔方 洛谷 P2007
查看>>
Redis基础认识及常用命令使用(一)--转载
查看>>
刚刚加入程序员的行列,希望通过博客的形式记录自己在这个领域的点点滴滴。同时分享自己的心得体会。...
查看>>
正则替换字符时,同时替换不同的字符
查看>>