题目: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九省联考)一双木棋相关推荐

  1. 九省联考2018--一双木棋chess

    题面: 菲菲和牛牛在一块n 行m 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束. 落子的规则是:一个格子可以落子当且仅当这 ...

  2. 【洛谷】【博弈搜索】P4363 [九省联考2018]一双木棋chess

    洛谷 P4363 [九省联考2018]一双木棋chess 题目大意 ◇题目传送门◆ 分析 根据题目所给定的规则,可以发现对于每一行,其下面一行上放的棋子数目不可能多于上面的一行. 所以我们可以将每行上 ...

  3. 「Luogu4363/BZOJ5248」[九省联考2018]一双木棋chess

    「Luogu4363/BZOJ5248」[九省联考2018]一双木棋chess 学校省选模拟居然拿九省联考来考 然而我还是\(too\space young\),搞不懂什么叫最优 让二者的答案最接近可 ...

  4. 九省联考2018总结

    前言 我作为一名ZJOI2018day1凉凉选手,为获得更多的省选体验,去上海参加了九省联考2018,当然,是属于外省选手参加的(所以实际并测的时候出现了一些问题也得不到解决),做完两天的题,深有感触 ...

  5. 「九省联考 2018」一双木棋

    「九省联考 2018」一双木棋 题目描述 菲菲和牛牛在一块 \(n\) 行 \(m\) 列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手. 棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满 ...

  6. bzoj5248 [2018多省省队联测]一双木棋

    5248: [2018多省省队联测]一双木棋 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 155  Solved: 132 [Submit][St ...

  7. 2018 年一月联考逻辑真题

    2018 年一月联考逻辑真题 三.逻辑推理:第 26-55 小题,每小题 2 分,共 60 分.下列每題给出的A.. B..C..D.五个选项中,只有一项是符合试题要求的.请在答题卡上将所选项的字母涂 ...

  8. 管理类联考计算机,【2018管理类联考逻辑公式汇总】- 环球网校

    [摘要]管理类联考的逻辑复习很是磨人,很多同学会因此头疼不已.为了更全面的帮助2018年的考生们复习联考综合逻辑备考工作,小编为大家总结了史上最全的逻辑公式汇总,希望考生们能够认真复习.详细公式汇 [ ...

  9. [九省联考2018]一双木棋chess——搜索+哈希

    题目:bzoj5248 https://www.lydsy.com/JudgeOnline/problem.php?id=5248 洛谷P4363 https://www.luogu.org/prob ...

最新文章

  1. 【组队学习】孙健坤:基于Python的会员数据化运营
  2. luogu P2865 [USACO06NOV]Roadblocks G(次短路模板)
  3. java OpenCV 图片清晰度、色偏和亮度检测
  4. C/C++ 笔试、面试题目大汇总
  5. RadioGroup和RadioButton(单选框)
  6. Ant build.xml程序简单说明
  7. 程序员养发(老师付推荐)
  8. libxml2用xpath进行查找
  9. 2021 年了,算法岗位应该怎样准备面试?
  10. PyTorch 模型训练实用教程(附代码)
  11. 收藏十二:ExtJs
  12. HDU 2815 扩展baby step giant step 算法
  13. 微信小程序报错:invalid credential, access_token is invalid or not latest
  14. 高中数学怎么学好我的数学学习方法
  15. 阿里巴巴投资1亿美元在成都建立西部基地,成都的人才快点抓紧啊
  16. 微信小程序使用腾讯地图进行路线规划,坐标转地址,逆地理编码,计算目的地跟自身定位的距离
  17. 擎创告警的智能聚类、压缩及降噪
  18. 真空灾难:物理学最著名的未解难题之一
  19. [杨可桢]机械设计基础题库 机械设计基础习题 2022机械设计基础考试题答案 杨可桢《机械设计基础》(第7版)笔记和课后习题(含考研真题)详解
  20. 产品随想6:痛点分析,是先“痛”还是先“点”?

热门文章

  1. 如何在数据源是空的时候,gridview显示表头(万能)
  2. Vue:net::ERR_CONNECTION_REFUSED
  3. ad19做直插封装 ipc_AD19的IPC封装向导使用
  4. 每一段感情结束后,是男方放下的快,还是女方放下的快?
  5. 古巷里的人像写真,怎么拍出漂亮的照片?
  6. 书法是什么?书法的美从何说起?
  7. 和媳妇加一起月薪三万五想换车了不知道x5养的起吗?
  8. 闲 鱼,进阶技巧,如何提高你的曝光量?
  9. 如何让自己的视频号作品上热门
  10. 父亲去年喂猪挣了21万