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不能大于当 ...
随机推荐
- jquery的 $(function(){ }) = $(document).ready(function(){ }) ,及页面的加载顺序
document.ready和onload的区别:一.JavaScript文档加载完成事件页面加载完成有两种事件一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件) 二.是onloa ...
- if语句代码优化
if($sum==7){ $sz+=135; }elseif($sum==5){ $sz+=80; }elseif($sum==6){ $sz+=97; }elseif($sum==4){ $sz+= ...
- DWZ前端框架使用问题记录
心得体验:DWZ依赖特定的HTML结构,所以一定要注意项目中的HTML结构,多用firebug查看,还有如果使用一些组件的时候出现问题,可以查看下返回JSON格式是否符合组件规定的JSON格式,很多都 ...
- Unity3d 动态批处理的问题
这段时间做unity3d的优化,主要的入手是减少draw call. 1.代码上主要是把一些零碎的同材质的合并成一个大的mesh. 2.减少不必要的全屏后期处理.把摄像机的renderin ...
- php中session_start()相关问题分析与解决办法
介绍下,在php中使用session时遇到的一些问题,与相关解决方法.1.错误提示Warning: Cannot send session cookie - headers already sentW ...
- Lua 常用的shell命令
lua作为一种小巧的脚本语言,其函数等动作可以使用shell命令进行运行和调试,以下是几个常用的shell命令.基本格式是 lua [选项参数] [脚本参数] (1)%lua 程序名.lua ...
- python的各种推导式(列表推导式、字典推导式、集合推导式)
推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...
- django post分号引发的问题
利用jquery的ajax传值 $.ajax({ type:"POST", url:"", data:"content"=content, ...
- wamp下修改mysql root用户的登录密码
1.安装好wamp后,运行WampServer程序,进入MYSQL控制台; 2.进入控制台后,提示输入密码(不用输入任何密码,因为密码为空),按回车键进入; 3.输入“USE mysql;”然后回车, ...
- windows下SSH客户端远程访问Linux出现错误