牛客每日练习----德玛西亚万岁,求最值,小牛再战
我喜欢给自己压力,必须得定一个很高的目标,逼自己朝着这个目标前进,不管会不会实现,都是一个动力。 ----喻言
链接:https://ac.nowcoder.com/acm/problem/15034
来源:牛客网
题目描述
德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。
这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。
有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。
结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土
地标记为0表示为高山峻岭或者深海湖泊,英雄们无法在其中站立,只有标
记为1的土地才能容纳一个英雄。德玛西亚的英雄们战斗时有一个特点,他
们不希望队友站在自己旁边显得很暧昧。请问最多能有多少种安排德玛西
亚英雄的方法?
输入描述:
输入包含多组测试数据; 每组数据的第一行包含2个整数n和m (n <= 12, m <= 12 ),之间用空格隔开; 接下来的n行,每行m个数,表示n*m的比尔吉沃特领土。
输出描述:
输出一个整数n代表安排应用的方法。 (答案取膜100000000)
示例1
输入
复制
3 3 1 1 1 0 1 1 1 0 0
输出
复制
24
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
const int mod=1e8;
const int maxn=20;
int dp[maxn][1<<maxn];
int a[maxn],n,m;
signed main(){while(cin>>n>>m){int jg=0;for(int i=1;i<=n;i++)for(int s=0;s<(1<<m);s++)dp[i][s]=0;for(int i=1;i<=n;i++){int tmp=0;for(int j=0;j<m;j++){int x;cin>>x;if(x)tmp+=(1<<j);}a[i]=tmp;}dp[0][0]=1;for(int i=1;i<=n;i++){for(int s=0;s<(1<<m);s++){if((s&a[i])!=s)continue;if(s&(s<<1))continue;for(int j=0;j<(1<<m);j++){if(j&s)continue;dp[i][s]=(dp[i][s]+dp[i-1][j])%mod;}}}for(int s=0;s<(1<<m);s++)jg=(jg+dp[n][s])%mod;cout<<jg<<endl;}return 0;
}
链接:https://ac.nowcoder.com/acm/problem/15052
来源:牛客网
题目描述
给你一个长为n的序列a
定义f(i,j)=(i-j)2+g(i,j)2
g是这样的一个函数
求最小的f(i,j)的值,i!=j
输入描述:
第一行一个数n 之后一行n个数表示序列a
输出描述:
输出一行一个数表示答案
示例1
输入
复制
4 1 0 0 -1
输出
复制
1
备注:
对于100%的数据,2 <= n <= 100000 , |ai| <= 10000
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
typedef long long ll;
using namespace std;
const int mod=1e8;
const int maxn=20;
long long a[100010];
int n,x;
ll mi=llinf;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&x);a[i]=a[i-1]+x;}for(int i=1;i<=n;i++){for(int j=i;j<=i+1;j++){ll ls = (a[j]-a[i-1])*(a[j]-a[i-1])+(j-i+1)*(j-i+1);mi=mi>ls?ls:mi;}}printf("%lld\n",mi);return 0;
}
链接:https://ac.nowcoder.com/acm/problem/15066
来源:牛客网
题目描述
共有N堆石子,已知每堆中石子的数量,两个人轮流取石子,每次只能选择N堆石子中的一堆取一定数量的石子(最少取一个),取过子之后,还可以将该堆石子中剩余的石子随意选取几个放到其它的任意一堆或几堆上。等哪个人无法取子时就表示此人输掉了游戏。注意:一堆石子没有子之后,就不能再往此处放石子了。
假设每次都是小牛先取石子,并且游戏双方都绝对聪明,现在给你石子的堆数、每堆石子的数量,请判断出小牛能否获胜。
输入描述:
可能有多组测试数据(测试数据组数不超过1000) 每组测试数据的第一行是一个整数,表示N(1<=N<=10) 第二行是N个整数分别表示该堆石子中石子的数量。(每堆石子数目不超过100) 当输入的N为0时,表示输入结束
输出描述:
对于每组测试数据,输出Win表示小牛可以获胜,输出Lose表示小牛必然会败。
示例1
输入
复制
3 2 1 3 2 1 1 0
输出
复制
Win Lose
备注:
提示: 例如:如果最开始有4堆石子,石子个数分别为3 1 4 2,而小牛想决定要先拿走第三堆石子中的两个石子(石子堆状态变为3 1 2 2),然后他可以使石子堆达到的状态有以下几种: 3 1 2 2(不再移动石子) 4 1 1 2(移动到第一堆一个) 3 2 1 2(移动到第二堆一个) 3 1 1 3(移动到第四堆一个) 5 1 0 2(全部移动到第一堆) 3 3 0 2(全部移动到第二堆) 3 1 0 4(全部移动到最后)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
typedef long long ll;
using namespace std;
const int mod=1e8;
const int maxn=20;
ll n,a[110];
int main(){while(cin>>n&&n!=0){ll jg=0;for(ll i=1;i<=n;i++){cin>>a[i];jg=jg^a[i];}if(n&1||jg)printf("Win\n");elseprintf("Lose\n");}return 0;
}
牛客每日练习----德玛西亚万岁,求最值,小牛再战相关推荐
- 牛客网 德玛西亚万岁 状压DP
德玛西亚万岁 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史.这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪.有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优 ...
- 牛客网多校训练 德玛西亚万岁
题目描述 来源 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣 ...
- 算法竞赛入门经典 每日一题(德玛西亚万岁)
题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优 ...
- 【每日一题】6月3日德玛西亚万岁
题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优 ...
- 2018年全国多校算法寒假训练营练习比赛(第二场)F - 德玛西亚万岁
链接:https://www.nowcoder.com/acm/contest/74/F 来源:牛客网 题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣 ...
- [NC15034]德玛西亚万岁
状压dp 第一次写状压dp的题目,可能是因为这种类型的比较难吧,所以是第一次做到. 题解: 我们可以用二进制来描述方格,1表示有德玛西亚,0表示没有. 样例1中第一行的三个方格都可以站人 一共有五种情 ...
- 德玛西亚万岁-----状压dp
德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士. ...
- NC15034 德玛西亚万岁(状压dp)
链接:https://ac.nowcoder.com/acm/problem/15034 题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识 ...
- 2018年全国多校算法寒假训练营练习比赛(第二场) F.德玛西亚万岁(状压动归)
题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史.这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪.有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的 ...
最新文章
- text-size-adjust: none并没有什么用
- 2.1.1 正则化基本介绍
- CSDN代码块显示颜色
- Android Bootloader LittleKernel的两篇文章 【转】
- 图片背景虚化_如何用PPT制作图片虚化背景?
- 事件管理决定一个网管软件的成功与失败
- H264视频压缩原理详解
- @Required注解
- 阮一峰mysql_阮一峰:理解矩阵乘法
- 提升性能的开发者选项,华为手机必开4种设置,让手机飞起来
- HHDBCS及HHDESK的资源加密功能
- 采用CAD刀模插件(飞狼刀模工具箱)批理倒圆角
- DBeaver安装及使用
- Linux常用命令-权限管理命令
- android串口通信——android-serialport-api
- [MdSQL]表的增删查改(进阶)
- 愚弄了上万人,AI开始文化入侵了?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
- subprocess.Popen(执行命令)
- android自定义手势,Android编程实现自定义手势的方法详解
- 一次美团外卖apk分析学习
热门文章
- excel单元格式设置
- UI设计在中国的现状
- 小项目:创建收据打印程序
- 将C语言宏定义转换成字符串!
- android蚂蚁金服支付宝支付集成步骤
- zsh如何运行conda | zsh anconda | zsh终端下配置aonconda环境 | zsh: command not found: conda
- 用Calibre 转mobi 到 DOC (WORD) 的方法
- 今有2018年1月1日—15日的猪肉价格和牛肉价格的数据,它们存在于一个Excel表格中,将其读入Python中并用一个数据框变量df保存。分别绘制1月1日—10日的猪肉价格和牛肉价格走势
- 实习入职第二十天:从setRecyclerListener看listView回收机制
- 素雅极简线条中国风PPT模板