BZOJ 3106: [cqoi2013]棋盘游戏
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 859 Solved: 356
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Sample Output
HINT
n<=20
题解:暴力DP即可;
f[i][j][k][l][m][n]:表示:第I位,第一,二,三个数用了i,j,k个,n表示是否有进位;
参考代码:
#include<bits/stdc++.h>
using namespace std;
#define clr(a,b) memset(a,b,sizeof(a))
typedef long long ll;
const ll inf=0x3f3f3f3f3f3f3f3fll;
ll a,b,c;
ll la,lb,lc,len;
ll dp[][][][][];
void getlen(){len=max(log2(a)+,max(log2(b)+,log2(c)+));}
ll getnum(ll x)
{
ll sum=;
for(int i=;i<;++i) {if( x & (1ll<<i) ) sum++; }
return sum;
}
void work()
{
dp[][][][][]=;
for(ll i=;i<len;++i)
{
for(ll j=;j<=la;++j)
{
for(ll k=;k<=lb;++k)
{
for(ll l=;l<=lc;++l)
{
long long tmp=dp[i][j][k][l][];//枚举最后一位不进位的情况
dp[i+][j+][k+][l+][]=min(dp[i+][j+][k+][l+][],tmp+(<<i+));
dp[i+][j+][k][l+][]=min(dp[i+][j+][k][l+][],tmp+(<<i));
dp[i+][j][k+][l+][]=min(dp[i+][j][k+][l+][],tmp+(<<i));
dp[i+][j][k][l][]=min(dp[i+][j][k][l][],tmp);
tmp=dp[i][j][k][l][];//枚举最后一位进位的情况
dp[i+][j+][k+][l+][]=min(dp[i+][j+][k+][l+][],tmp+(<<i+));
dp[i+][j][k+][l][]=min(dp[i+][j][k+][l][],tmp+(<<i));
dp[i+][j+][k][l][]=min(dp[i+][j+][k][l][],tmp+(<<i));
dp[i+][j][k][l][]=min(dp[i+][j][k][l][],tmp);
}
}
}
}
//cout<<len<<" "<<la<<" "<<lb<<" "<<lc<<endl;
if(dp[len][la][lb][lc][]>=inf) printf("-1\n");
else printf("%d\n",dp[len][la][lb][lc][]);
} int main()
{
scanf("%lld%lld%lld",&a,&b,&c);
getlen(); memset(dp,inf,sizeof dp);
la=getnum(a);lb=getnum(b);lc=getnum(c);
work();
return ;
}
BZOJ 3106: [cqoi2013]棋盘游戏的更多相关文章
- BZOJ 3106: [cqoi2013]棋盘游戏(对抗搜索)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3106 对抗搜索,f[x][y][a][b][c][d]表示当前谁走,走了几步,及位置. (因为 ...
- 【BZOJ 3106】 3106: [cqoi2013]棋盘游戏 (对抗搜索)
3106: [cqoi2013]棋盘游戏 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 544 Solved: 233 Description 一个 ...
- 3106: [cqoi2013]棋盘游戏
3106: [cqoi2013]棋盘游戏 链接 分析: 极大极小搜索 + 记忆化. 代码 #include<bits/stdc++.h> using namespace std; type ...
- BZOJ 3106 棋盘游戏
Description 一个\(n \times n(n \le 2)\)棋盘上有黑白棋子各一枚.游戏者A和B轮流移动棋子,A先走. A的移动规则:只能移动白棋子.可以往上下左右四个方向之一移动一格. ...
- bzoj千题计划200:bzoj3106: [cqoi2013]棋盘游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=3106 白棋如果第一步不能赢,那么一定输 因为可以黑棋走的距离比白棋大,黑棋可以下一步吃掉白棋,也可以 ...
- bzoj 3105: [cqoi2013]新Nim游戏 异或高消 && 拟阵
3105: [cqoi2013]新Nim游戏 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 535 Solved: 317[Submit][Stat ...
- BZOJ 3108: [cqoi2013]图的逆变换
3108: [cqoi2013]图的逆变换 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 627 Solved: 415[Submit][Statu ...
- BZOJ 3107 [cqoi2013]二进制a+b (DP)
3107: [cqoi2013]二进制a+b Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 995 Solved: 444[Submit][Stat ...
- BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基
[题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即 ...
随机推荐
- 决策树(上)-ID3、C4.5、CART
参考资料(要是对于本文的理解不够透彻,必须将以下博客认知阅读,方可全面了解决策树): 1.https://zhuanlan.zhihu.com/p/85731206 2.https://zhuanla ...
- 创建一个线程池(java)
private ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("billService-poo ...
- 《计算机网络 自顶向下方法》 第6章 链路层和局域网 Part2
待补充完善 Web 页面的请求历程 应用层 报文.主机 运输层 报文段. 网络层 数据报.路由器.IP 地址 链路层 以太网帧.交换机.MAC 地址 步骤 1)到 4) ...
- Python基础之JSON
作用 对Python对象进行序列化,便于存储和传输 Python对象与JSON字符串相互转换 Python对象转JSON字符串 import json data = [ { 'a' : 1, 'b' ...
- java高级——反射
慕课网<反射——Java高级开发必须懂的>听课笔记 一.class类的使用 class ClassDemo { public static void main(String[] args) ...
- 微擎 manifest.xml
微擎 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns= ...
- 自制window下core animation引擎 - demo第二弹 - 仿QQ电脑管家加速小火箭
一年前想写一个像cocoa那样,可以方便层动画开发的引擎,写着写着又逆向它的QuartzCore.framework,也就是CoreAnimation的底层,已经大半年没有搞windows这个引擎.大 ...
- Code Runner for VS Code 突破 1000 万下载量!支持运行超过 40 种语言
记得三年多前,韩老师那时还在写 PHP(是的,没错!在微软写 PHP),同时需要写 Python 和 Node.js .所以在那时,支持多种语言的 VS Code 已经是笔者的主力编辑器了.唯一不足的 ...
- SQL SERVER中SELECT和SET赋值相同点与不同点
SELECT和SET在SQL SERVER中都可以用来对变量进行赋值,但其用法和效果在一些细节上有些不同. 1. 在对变量赋值方面,SET是ANSI标准的赋值方式,SELECT则不是.这也是SET方式 ...
- 公众号在线Markdown编辑器,支持公式
公众号排版不支持Markdown,用自带的富文本编辑器排版出来的格式十分丑陋,尤其是公式,竟然连"Mathjax"都不支持,但好在支持"带格式复制",也即可以将 ...