JZOJ 6316. djq的朋友圈
DescriptionDescriptionDescription
有nnn个点,mmm条边,点值是从点1通过边亦或和,求拟定一种加入点的顺序,使得0的点更多
数据范围:n≤42n\leq 42n≤42
SolutionSolutionSolution
显然状压dpdpdp,但2n2^{n}2n会超时
实际上我们只需要dpdpdp与1相连的点或者dpdpdp与1不直接相连但与1直接相连的点相连的点,而这两个部分加起来才等于nnn,所以我们只需要dpdpdp其中的较小者即可,最坏情况下这些点是一样多的,但复杂度变成了O(2n/2n)O(2^{n/2}n)O(2n/2n),可以通过本题
CodeCodeCode
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
#define N 110
using namespace std;int n,m,A,B;
long long f[2][N][N],a[N][N],ans,K,w[N][N];
const int dx[4]={-1,0,1,0};
const int dy[4]={0,1,0,-1};
signed main()
{freopen("maja.in","r",stdin);freopen("maja.out","w",stdout);memset(f,0xcf,sizeof(f));scanf("%d%d%d%d%lld",&n,&m,&A,&B,&K);for(register int i=1;i<=n;i++)for(register int j=1;j<=m;j++)scanf("%lld",a[i]+j);f[0][A][B]=0;K/=2;for(register int k=1;k<=min(1ll*n*m,K);k++){memset(f[k&1],0xcf,sizeof(f[k&1]));for(register int i=1;i<=n;i++)for(register int j=1;j<=m;j++){if(k==1){for(register int l=0;l<4;l++) w[i][j]=max(w[i][j],a[i+dx[l]][j+dy[l]]);w[i][j]+=a[i][j];}for(register int l=0;l<4;l++)f[k&1][i][j]=max(f[k&1][i][j],f[~k&1][i+dx[l]][j+dy[l]]+a[i][j]);if(f[k&1][i][j]<0) continue;ans=max(ans,(f[k&1][i][j]+(K-k)/2*w[i][j])*2-a[i][j]);}}printf("%lld",ans);
}
JZOJ 6316. djq的朋友圈相关推荐
- JZOJ 6316. djq的朋友圈(状压DP)
JZOJ 6316. djq的朋友圈 题目 Description Input Output 一个整数表示最多的盟友数. Sample Input Sample 1: 7 8 1 2 0 1 3 0 ...
- JZOJ 6316.djq的朋友圈【状压】
... 题目: 题意: 分析: 代码: 题目: 传送门 题意: 给出关系表,求一个对比的顺序,使得可能的盟友数最大 分析: 设AAA表示直接与111相连的点集,BBB表示直接与AAA相连但不与111相 ...
- [jzoj 6316] djq的朋友圈 {状态压缩}
题目 解题思路 我们可以把和1号点相邻且是盟友的点归到A集合,与1号点相邻且不是盟友的归到B集合,然后枚举B集合的排列暴力计算. 代码 #include<cstdio> #include& ...
- 6316. djq的朋友圈
Description Input Output 一个整数表示最多的盟友数. Sample Input Sample 1: 7 8 1 2 0 1 3 0 2 4 0 4 5 0 3 4 1 2 5 ...
- 【动态规划 状压dp】JZOJ_6316 djq的朋友圈
题意 给出一张图,有若干点之间连边,边权∈{0,1}\in\{0,1\}∈{0,1},对于点1,与它直接连边的点且边权为0,就是盟友,否则是情敌:间接连边,就要按某种顺序同时列出它们的熟人,如果关系相 ...
- NOI2018湖北省队集训Day4 T2 djq 的朋友圈
题面: 得分情况: 35分枚举全排列暴力... 正解: 我们将直接与1相连的点称为a,不与1直接相连而与a直接相连的点称为b. 状压dp[i]表示已选的a,转移时枚举现在要选的a点,计算对答案的影响. ...
- python获取登录按钮_python爬虫24 | 搞事情了,用 Appium 爬取你的微信朋友圈。
昨天小帅b看到一些事情不顺眼 有人偷换概念 忍不住就写了一篇反讽 996 的 看不下去了,我支持996,年轻人就该996! 没想到有些人看不懂 这就算了 还来骂我 早些时候关注我的小伙伴应该知道我第一 ...
- 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈
题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...
- 不停刷朋友圈的人_刷爆朋友圈的推拉门安装方式 90%的人从没见过
点击上面免费订阅 问:为什么关注门窗会? 答:门窗会是百万门窗精英的聚集地. 答:门窗会是门窗老板的手机采购平台. 既想要充足的光线又想拥有合理的区域划分,那么推拉门是一个不错的选择.下面给大家介绍几 ...
最新文章
- 独家 | 5个步骤开启你的数据科学职业生涯!(附链接)
- mysql 表中添加数据类型_MySQL数据表添加字段(三种方式)
- 访客IP API接口
- 【Spring】Spring第一天 - 环境搭建、IoC 详解、DI 详解等
- (三)python3 只需3小时带你轻松入门—— 变量的简单运算
- Python--day 3
- LeetCode 697. 数组的度
- 高能同步辐射光源科学数据管理策略研究与应用
- 【报告分享】2020中国数字化后浪:中小企业转型与创新实录.pdf(附下载链接)...
- c语言编写一个用户登录界面,怎么用C语言编写个登陆界面?
- C2P工业云进销存管理有什么优势?
- 笔记本计算机涂硅脂,笔记本cpu怎么更换散热硅脂?笔记本电脑cpu涂硅脂教程
- java 套接字关联的通道_java.nio.channels.SocketChannel
- C++中如何创建一个类?
- DataTables如何重新加载数据
- windows编译 zlib
- 使用Mapper代理开发解决硬编码问题
- myeclipse2017 for Mac 破解版本
- 【创新实训】BERT4EL,基于文本相似度的实体消歧实现
- 全球排名前四的眼药水,第一款来自欧洲老牌安瞧AGEPHA Pharma,眼科医生自留!