bzoj5248(洛谷4363)(2018九省联考)一双木棋
题目:https://www.luogu.org/problemnew/show/P4363
一种考虑状态数的方法:有几个用了k个格子的列,就在第k个0的左边插入几个1;
这也是求不降序列的个数的方法。本题中这样一看,一共有C(10,20)个状态。*m得出记忆化搜索的时间复杂度是18e6左右。
利用hash和map记忆化搜索。那个dg可以设成全局变量,每次复原一下,就不用专门解hash了。之所以还要记s是为了记忆化搜索作角标。
其实这个代码只能在bzoj上A,洛谷上会超时。不超时的方法似乎是轮廓线dp之类。
#include<iostream> #include<cstdio> #include<cstring> #include<map> #define ll long long using namespace std; const ll INF=2e8; int n,m,tot,base,dg[15]; ll a[2][15][15]; map<ll,ll> dp; map<ll,bool> vis; ll pw(ll a,int ct) {ll ret=1;while(ct){if(ct&1)ret*=a;a*=a;ct>>=1;}return ret; } ll dfs(ll s,bool k) {if(vis[s])return dp[s];vis[s]=1;ll ret=-INF; // ll ts=s; // int dg[15]={0}; // for(int i=1;i<=m;i++)dg[i]=ts%base,ts/=base;if(dg[m]==n)return 0;for(int i=1;i<=m;i++)if((i==1&&dg[i]<n)||dg[i-1]>dg[i]){dg[i]++;ret=max(ret,a[k][dg[i]][i]-dfs(s+pw(base,i-1),!k));dg[i]--;}return dp[s]=ret; } int main() {scanf("%d%d",&n,&m);base=n+1;for(int k=0;k<=1;k++)for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%lld",&a[k][i][j]);printf("%lld",dfs(0,0));return 0; }
转载于:https://www.cnblogs.com/Narh/p/9164002.html
bzoj5248(洛谷4363)(2018九省联考)一双木棋相关推荐
- 九省联考2018--一双木棋chess
题面: 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可以落子当且仅当这 ...
- 【洛谷】【博弈搜索】P4363 [九省联考2018]一双木棋chess
洛谷 P4363 [九省联考2018]一双木棋chess 题目大意 ◇题目传送门◆ 分析 根据题目所给定的规则,可以发现对于每一行,其下面一行上放的棋子数目不可能多于上面的一行. 所以我们可以将每行上 ...
- 「Luogu4363/BZOJ5248」[九省联考2018]一双木棋chess
「Luogu4363/BZOJ5248」[九省联考2018]一双木棋chess 学校省选模拟居然拿九省联考来考 然而我还是\(too\space young\),搞不懂什么叫最优 让二者的答案最接近可 ...
- 九省联考2018总结
前言 我作为一名ZJOI2018day1凉凉选手,为获得更多的省选体验,去上海参加了九省联考2018,当然,是属于外省选手参加的(所以实际并测的时候出现了一些问题也得不到解决),做完两天的题,深有感触 ...
- 「九省联考 2018」一双木棋
「九省联考 2018」一双木棋 题目描述 菲菲和牛牛在一块 \(n\) 行 \(m\) 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满 ...
- bzoj5248 [2018多省省队联测]一双木棋
5248: [2018多省省队联测]一双木棋 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 155 Solved: 132 [Submit][St ...
- 2018 年一月联考逻辑真题
2018 年一月联考逻辑真题 三.逻辑推理:第 26-55 小题,每小题 2 分,共 60 分.下列每題给出的A.. B..C..D.五个选项中,只有一项是符合试题要求的.请在答题卡上将所选项的字母涂 ...
- 管理类联考计算机,【2018管理类联考逻辑公式汇总】- 环球网校
[摘要]管理类联考的逻辑复习很是磨人,很多同学会因此头疼不已.为了更全面的帮助2018年的考生们复习联考综合逻辑备考工作,小编为大家总结了史上最全的逻辑公式汇总,希望考生们能够认真复习.详细公式汇 [ ...
- [九省联考2018]一双木棋chess——搜索+哈希
题目:bzoj5248 https://www.lydsy.com/JudgeOnline/problem.php?id=5248 洛谷P4363 https://www.luogu.org/prob ...
最新文章
- 【组队学习】孙健坤:基于Python的会员数据化运营
- luogu P2865 [USACO06NOV]Roadblocks G(次短路模板)
- java OpenCV 图片清晰度、色偏和亮度检测
- C/C++ 笔试、面试题目大汇总
- RadioGroup和RadioButton(单选框)
- Ant build.xml程序简单说明
- 程序员养发(老师付推荐)
- libxml2用xpath进行查找
- 2021 年了,算法岗位应该怎样准备面试?
- PyTorch 模型训练实用教程(附代码)
- 收藏十二:ExtJs
- HDU 2815 扩展baby step giant step 算法
- 微信小程序报错:invalid credential, access_token is invalid or not latest
- 高中数学怎么学好我的数学学习方法
- 阿里巴巴投资1亿美元在成都建立西部基地,成都的人才快点抓紧啊
- 微信小程序使用腾讯地图进行路线规划,坐标转地址,逆地理编码,计算目的地跟自身定位的距离
- 擎创告警的智能聚类、压缩及降噪
- 真空灾难:物理学最著名的未解难题之一
- [杨可桢]机械设计基础题库 机械设计基础习题 2022机械设计基础考试题答案 杨可桢《机械设计基础》(第7版)笔记和课后习题(含考研真题)详解
- 产品随想6:痛点分析,是先“痛”还是先“点”?