牛客比赛-状压dp】的更多相关文章

链接:https://www.nowcoder.com/acm/contest/74/F来源:牛客网 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士. 结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土 地标记为0表示为高山峻岭或者深海湖泊,英雄们无法在其中站立,只有标 记为1的土地才能容纳一个英雄.德玛西亚的英雄们战斗时有一个…
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本是货郎担问题(TSP),状压中挺常出现的问题 f[s][i]表示状态s下到第i个有宝藏的地方,是否能拿到所有s中的宝藏 当然最后还要考虑dis[id[i]][1]是否大于s状态下的宝藏数,取较小值就是答案了 跑了48ms,优化一下应该可以更快.. #include<stdio.h> #includ…
链接 : Here! 思路 : 状压DP. 开始想直接爆搜, T掉了, 然后就采用了状压DP的方法来做. 定义$f[S]$为集合$S$的最小代价, $dis[i]$则记录第$i$个点的"深度", 所以说边$E{[i, j]}$ 的工程代价就为$dis[i] * E{[i, j]}$, 因此可以得到状态转移方程 : 初始状态(假设以$i$作为起点) : $dis[i] = 1$, $f[1 << (i - 1)] = 0$, $dis[k] = INF (k != i, k…
链接:https://ac.nowcoder.com/acm/contest/946/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262875K,其他语言525750K 64bit IO Format: %lld 题目描述 筱玛是一个热爱阅读的好筱玛,他最喜欢的事情就是去书店买书啦! 一天,他来到一家有 n n本书的书店,筱玛十分快乐,决定把这家店里所有的书全部买下来. 正巧今天店里在搞促销活动,包含若干个促销方案.每个促销方案是由指定的若干本书构成的集合,…
maximum clique 1 题意 给出一个集合s,求每个子集的最大独立集的权值和(权值是独立集的点个数) 分析 n比较小,一股浓浓的暴力枚举每一个子集的感觉,但是暴力枚举模拟肯定会T,那么想一想怎么优化复杂度,我们可以使用状压dp,对于一个集合,并且对于任意一个点,这个点要么不在该集合的最大独立集里面,要么在里面,如果在里面,那么所有和该点相邻的都不在,只需要取max就是算出dp[i],i集合的最大独立集,这里状态很明确,但是会随之发生疑问,为什么随机取一个点就可以?写的时候确实想了很久也…
正解:状压dp+辅助dp 解题报告: 来还债辣!NOIp之后还是轻松很多了呢,可以一点点儿落实之前欠下的各种东西一点点提升自己!加油鸭! 是个好题,可以积累套路,启发性强,而且很难 哦而且状压它也是个好东西鸭,这次D2T2好像8以内的部分分就是用神仙状压做的呢,当然我是不会的只会傻逼地推数论QAQ还是可以落实学习一下那题的神仙状压部分分呢QAQ ummm那这题因为最开始是没太懂的 所以和之前做疫情控制一样分几个板块慢慢梳理趴qwq 首先要确定这题用什么方法? 不要说是已经看到题解说用状压dp辣!…
题目链接:https://nanti.jisuanke.com/t/31436 作为一名车手,为了提高自身的姿势水平,平时的练习是必不可少的.小 J 每天的训练包含 $N$ 个训练项目,他会按照某个顺序依次练习这些项目.出于一些玄妙的原因,训练的效果跟项目的顺序有着很大关系.当项目 $i$ 被安排在项目 $j$ 之前进行训练,小 J 会获得 $a_{i,j}$ 的熟练度,否则他会获得 $a_{j,i}$ 的熟练度.为了使训练效果尽可能好,小 J 希望这 $\frac{N(N-1)}2$ 对项目的…
题目描述 Yume 最近在玩一个名为<LoveLive! School idol festival>的音乐游戏.他之所以喜欢上这个游戏,是因为这个游戏对非洲人十分友好,即便你脸黑到抽不出好卡,还可以通过在每个月举办的两次活动中达成一定的目标来获得奖励. Yume 很喜欢这一期活动奖励卡的卡面,于是他决定要肝这一期的活动,拿到活动奖励.这一期的活动规则很特殊,玩家需要在活动规定的结束时间前,完成所有指定的歌曲(每首歌曲只能打一次),并获得一定的分数,就可以拿到活动奖励.如果在规定的时间前没有完成…
题目链接:https://nanti.jisuanke.com/t/30994 样例输入: 5 5 6 0 4 5 1 1 3 4 1 2 2 3 1 3 1 2 1 4 样例输出: 55 样例输入: 1 -100 0 0 样例输出: 0 题解: 把n道题目做了或者没做作为状态,裸的状压DP. 其中当前的时间 t,就是当前做了的题目数量加上1. AC代码: #include<bits/stdc++.h> using namespace std; typedef long long ll; co…
问题描述 蒜头君酷爱搭积木,他用积木搭了 n 辆重量为 wi的小车和一艘最大载重量为 W 的小船,他想用这艘小船将 n 辆小车运输过河.每次小船运载的小车重量不能超过 W.另外,小船在运载小车时,每辆小车会对小船有一个损坏值si,当多辆小车一起运载时,该趟运载对小船的损坏值为船上所有小车的最大损坏值.现在蒜头君想知道,如何用小船运载 n 辆小车,可以使得对小船造成的总损坏值最小.输入格式第一行输入两个数 W 和 n(100≤w≤400,1≤n≤16),分别表示小船的最大载重量和小车总数.接下来输…