hdu 4038 Stone
思路:
如果负数的个数为偶数则不必改变,为奇数就将最大负数变为正;
对于正数,尽量将1,2变为3即可。
代码如下:
#include<cstring>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<map>
#include<vector>
#include<string>
#define Maxn 2010
#define LL __int64
#define MM 1000000007
using namespace std;
priority_queue<LL> les;
priority_queue<LL ,vector<LL> ,greater<LL> >mor;
LL mul(LL x,LL e)
{
LL temp=;
while(e){
if(e&) temp=temp*x%MM;
e>>=;
x=x*x%MM;
}
return temp;
}
int main()
{
LL i,j,n,t,x,Case=;
LL m;
scanf("%I64d",&t);
while(t--)
{
while(!mor.empty())
mor.pop();
while(!les.empty())
les.pop();
scanf("%I64d%I64d",&n,&m);
for(i=;i<=n;i++)
{
scanf("%I64d",&x);
if(x<)
les.push(x);
else
mor.push(x);
}
LL temp;
LL lz,mz;
mz=mor.size();
lz=les.size();
if(lz%)
{
temp=les.top();
if(m+(LL)temp>=){
m+=(LL)temp;
les.pop();
mor.push();
}
else{
les.pop();
les.push(temp+(LL)m);
m=;
}
}
while(m&&!mor.empty()){
temp=mor.top();
if(temp==){
mor.pop();
mor.push();
m--;
}
if(temp==){
mor.pop();
mor.push();
m--;
}
if(temp==){
mor.pop();
mor.push();
m--;
}
if(temp>=){
if(m==){
mor.pop();
mor.push(temp+);
m--;
}
break;
}
}
LL ans=;
LL mod=m%;
if(mod==){
if(m>=){
m-=;
mor.push();
mor.push();
}
else{
temp=mor.top();
mor.pop();
mor.push(temp+);
}
}
ans=mul(,m/);
if(mod==)
mor.push();
while(!mor.empty()){
temp=mor.top();
mor.pop();
ans*=(LL)temp;
ans%=MM;
}
while(!les.empty()){
temp=les.top();
les.pop();
ans*=(LL)temp;
ans%=MM;
}
ans%=MM;
printf("Case %I64d: %I64d\n",++Case,ans);
}
return ;
}
hdu 4038 Stone的更多相关文章
- hdu 1729 Stone Game
Stone Game HDU - 1729 题意: 给定n个箱子,每个箱子的容量为si,每个箱子里最初有ci个石子,每次放入石子不能超过放入前的石子数的平方,谁无法继续放入石子就算输. /* 这是 ...
- hdu 4388 Stone Game II
Stone Game II HDU - 4388 题目大意: 给出n堆物品,每堆物品都有若干件,现在A和B进行游戏,每人每轮操作一次,按照如下规则: 1. 任意选择一个堆,假设该堆有x个物品,从中选择 ...
- HDU 4764 Stone(博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4764 题目大意:Tang和Jiang玩石子游戏,给定n个石子,每次取[1,k]个石子,最先取完的人失败 ...
- 2013长春网赛 1006 hdu 4764 Stone(巴什博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4764 题意:Tang 和 Jiang 玩一个游戏,轮流写下一个数,Tang先手,第一次Tang只能写[ ...
- HDU 4764 Stone (2013长春网络赛,水博弈)
Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- HDU 4388 Stone Game II 博弈论 找规律
http://acm.hdu.edu.cn/showproblem.php?pid=4388 http://blog.csdn.net/y1196645376/article/details/5214 ...
- hdu 4388 Stone Game II sg函数 博弈
Stone Game II comes. It needs two players to play this game. There are some piles of stones on the d ...
- HDU 4388 Stone Game II {博弈||找规律}
Stone Game II Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- HDU 1729 Stone Game【SG函数】
以下转载至:长春理工大学赵小舟博弈论ppt 题目大意: 1.有n个盒子,每个盒子都有它的容量s 2.在游戏开始时,每个盒子里都有一些石子 3.双方轮流进行游戏,向一个盒子投入n个石子,其中n不能大于当 ...
随机推荐
- Java设计模式之--代理模式学习
1.代理模式定义 为其他对象提供一种代理以控制对这个对象的访问.代理对象起到中介服务,可以去掉功能服务和增加额外的服务. 其实按照官方的说法可能不太好理解,代理模式就好比我们生活中买票,一般情况下我们 ...
- 安装WordPress详细教程指南
最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...
- 用jQuery解析复杂的xml结构文件
一个晚上的心血 <?xml version="1.0" encoding="UTF-8"?> <weibo><wbContent& ...
- 常用JS加密编码算法
//#region UTF8编码函数 function URLEncode(Str) { if (Str == null || Str == "") return "&q ...
- Markdown 使用说明
使用说明 ========= @[手册|帮助|Markdown] - **马克飞象**是一款专为印象笔记打造的Markdown编辑器. - 特别需要说明的一点是增加了`@(笔记本)[标签]`语法,以此 ...
- Silverlight动画学习笔记(三):缓动函数
(一)定义: 缓动函数:可以将自定义算术公式应用于动画 (二)为什么要用缓动函数: 您可能希望某一对象逼真地弹回或其行为像弹簧一样.您可以使用关键帧动画甚至 From/To/By 动画来大致模拟这些效 ...
- js根据IP取得天气
<span id="weather"></span> <script> function weather(cityName) { var cha ...
- Docs list
http://www.deansys.com/doc/ldd3/index.html Github中文文档: http://www.worldhello.net/gotgithub/03-projec ...
- pyinstall 使用笔记
1.下载pyinstaller 目前pyinstaller支持的python版本为2.3-2.7,可以到http://www.pyinstaller.org/官网下载. 2.安装 下载完成后,解压即可 ...
- Linux磁盘与文件系统管理
df df(disk free) 功能说明:显示磁盘的相关信息.语 法:df [-ahHiklmPT][--block-size=<区块大小>][-t <文件系统类型>][-x ...