D. Lizard Era: Beginning(折半搜索)

思路比较显然就是折半搜索,关键是如何用mpmpmp记录前一半的状态。

考虑用pairpairpair到pairpairpair的映射。因为我们只需要444个变量a,b,c,patha,b,c,patha,b,c,path。

因为要求最后尽可能大,所以第一个pairpairpair可表示为:a−b,a−ca-b,a-ca−b,a−c。

第二个pairpairpair表示为:a,patha,patha,path。

这样当第一个pairpairpair相同时,aaa尽可能大即可。

如何判断是否达到题目要求呢?

(a,b,c),(x,y,z)(a,b,c),(x,y,z)(a,b,c),(x,y,z)

a+x=b+y=c+za+x=b+y=c+za+x=b+y=c+z。

(a−b,a−c)=(y−x,z−x)(a-b,a-c)=(y-x,z-x)(a−b,a−c)=(y−x,z−x)。

因此只需判断(y−x,z−x)(y-x,z-x)(y−x,z−x)是否出现过即可。

至于输出答案,就利用三进制即可。

参考代码

#include<bits/stdc++.h>
using namespace std;
namespace Acc{const int N=30;int v[N][3],r=-1e9,p1,p2,st[N],tp,n,m;char h[3]={'L','M','W'};map<pair<int,int>,pair<int,int>>mp;void dfs1(int d,int a,int b,int c,int path){if(d==m+1){pair<int,int>x={a-b,a-c},y={a,path};if(!mp.count(x))mp[x]=y;else if(mp[x].first<a)mp[x]=y;return;}dfs1(d+1,a,b+v[d][1],c+v[d][2],path*3);dfs1(d+1,a+v[d][0],b,c+v[d][2],path*3+1);dfs1(d+1,a+v[d][0],b+v[d][1],c,path*3+2);}void dfs2(int d,int x,int y,int z,int path){if(d==n+1){pair<int,int>a={y-x,z-x};int b;if(mp.count(a)&&r<(b=mp[a].first+x))r=b,p1=mp[a].second,p2=path;return;}dfs2(d+1,x,y+v[d][1],z+v[d][2],path*3);dfs2(d+1,x+v[d][0],y,z+v[d][2],path*3+1);dfs2(d+1,x+v[d][0],y+v[d][1],z,path*3+2);}void work(){cin>>n,m=n>>1;for(int i=1;i<=n;i++)for(int j=0;j<3;j++)cin>>v[i][j];dfs1(1,0,0,0,0),dfs2(m+1,0,0,0,0);if(r==-1e9)puts("Impossible"),exit(0);for(int i=m+1;i<=n;i++,p2/=3)st[++tp]=p2%3;for(int i=1;i<=m;i++,p1/=3)st[++tp]=p1%3;for(;tp;puts(""),tp--)for(int j=0;j<3;j++)if(j!=st[tp])putchar(h[j]);}
}
int main(){return Acc::work(),0;
}

D. Lizard Era: Beginning(折半搜索)相关推荐

  1. Lizard Era: Beginning

    Lizard Era: Beginning 题面翻译 有 n ( n ⩽ 25 ) n(n \leqslant 25) n(n⩽25)个任务和三个人,每次任务给出每个人能得到的值,每次任务选两个人,使 ...

  2. Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索

    Codeforces Round #297 (Div. 2)E. Anya and Cubes Time Limit: 2 Sec  Memory Limit: 512 MB Submit: xxx  ...

  3. [luogu4799 CEOI2015 Day2] 世界冰球锦标赛(折半搜索)

    传送门 Solution 折半搜索裸题,注意\(long long\) Code #include <cmath> #include <cstdio> #include < ...

  4. Educational Codeforces Round 76 (Rated for Div. 2) F. Make Them Similar 折半搜索

    传送门 文章目录 题意: 思路: 题意: 思路: 一个显然的思路就是2302^{30}230枚举所有的xxx,让后再检查,这个复杂度显然不能接受. 又发现对于每个位置它取多少不受其他位置限制,满足可拼 ...

  5. 【LOJ6072】苹果树【折半搜索】【矩阵树定理】【二项式反演】

    题意:有好坏两种点共 nnn 个,每个好点有权值,把这 nnn 个点连成一棵树,一个好点为有用的当且仅当它至少与一个好点相邻,求所有有用的点的权值和不超过 limlimlim 的方案数. n≤40n\ ...

  6. 【无码专区4】幸运数字4(折半搜索+计数+结论)

    因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dl ...

  7. [折半搜索][has] Jzoj P4250 路径

    Description A国有n个城市,编号为1到n,任意两个城市之间有一条路.shlw闲得没事干想周游A国,及从城市1出发,经过且仅经过除城市1外的每个城市1次(城市1两次),最后回到城市1.由于s ...

  8. bzoj1770: [Usaco2009 Nov]lights 燈(折半搜索)

    1770: [Usaco2009 Nov]lights 燈 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1153  Solved: 564 [Sub ...

  9. HZNU2509 曲院风荷——折半搜索

    目录 题目文本 解题思路 代码 考虑去重的代码 题目文本 传送门 Description kk在刷题劳累的时候喜欢去曲院风荷听戏喝茶.kk有一个容量为x个单位的大茶杯,同时kk想喝上一下午,于是他买了 ...

  10. 【折半搜索-经典题目】中山纪念中学暑期游Day13——【GDOI2017模拟8.15】Buy

    前言 考试时有道题目用到了[折半搜索] 老师推荐了这道经典题目让大家练习[前后部分算法不同]的题目 虽然不知道我有没有时间做,好歹先把题目记录一下,免得以后找不到了qwq 题目 Input Outpu ...

最新文章

  1. Luogu P1082 同余方程(NOIP 2012) 题解报告
  2. golang的包管理系统比较
  3. 关于spring cloud 各种组件的停更/升级/替换
  4. 巴巴腾机器人怎么开机_【巴巴腾智能机器人使用】_摘要频道_什么值得买
  5. spring融合activitymq-all启动报错的解决办法
  6. HDU3363_贪心
  7. java的split的正则_Java正则表达式之split()方法实例详解
  8. CREO:CREO软件之装配设计界面的简介、装配图设计流程、常见方法(主控件TOP DOWN设计、骨架模型TOP DOWN设计、记事本模型设计)、案例应用(图文教程)之详细攻略
  9. python卡方检验kf_Python 卡方检验
  10. UI 设计师不容错过的12款APP UI 交互设计
  11. 计算机word排版素材,WORD基础排版素材
  12. Guava-Splitter
  13. 成功男友因具备的品质
  14. 【不知道发啥】Win7网页版使用方法
  15. Word代做,线上兼职,月入过万
  16. 数字 2020和喜寿
  17. 安装sql server 2000时又出现:安装程序配置服务器失败。参考服务器错误日志和 C:/WINNT/sqlstp.log 了解更多信息。
  18. python官网 中文版-python .. 官方教程中文版.pdf
  19. html三栏式布局图,div布局的自由伸展三栏式版面
  20. 字节跳动2019春招第一批笔试

热门文章

  1. 记一段随风而逝的感情
  2. 重回童年的经典系列 |《保卫萝卜》来了,你还记得它吗?复刻 源码+解析 @怀旧的你
  3. PHP摄影网站怎么制作,摄影网站的设计与实现.doc
  4. asp.net 各种小窍门
  5. python greedy 加油次数
  6. SEO入门知识1:网站改版后怎么做SEO
  7. [CF838D]Airplane Arrangements
  8. 服务器winsxs文件夹怎么清理工具,win10系统winsxs文件夹该如何删除?win10删除winsxs文件夹的两种方法...
  9. 软件工程测试题(雨课堂学堂在线选择题汇总)
  10. Portraiture4.0最新免费磨皮美白滤镜修图插件