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不能大于当 ...
随机推荐
- Firefox 与 IE 对Javascript和CSS的区别
1. document.formName.item("itemName") 问题 说明:IE下,可以使用document.formName.item("itemName& ...
- Ping N个IP测试网络连通性
#-----------------------Smokeping移动节点-------------------##! /bin/bashecho "------------- Statin ...
- ASP.Net网站部署失败
部署站点时候,出现如下错误 “/”应用程序中的服务器错误. ---------------------------------------------------------------------- ...
- php下载文件的代码示例
php下载文件的代码示例,需要的朋友可以参考下 <?php $file = 'monkey.gif'; if (file_exists($file)) { header('Content- ...
- PHP操作MongoDB简明教程(转)
转自:http://blog.sina.com.cn/s/blog_6324c2380100ux2m.html MongoDB是最近比较流行的NoSQL数据库,网络上关于PHP操作MongoDB的资料 ...
- 如何去掉html中的超链接
$a= preg_replace("/<a[^>]+>/", "", $a); $a= preg_replace("/<\/a ...
- C# 生成简单验证码
网站登录总是会用到验证码,生成验证码对于C#来说很简单.因为有专门封装好的GDI+类可以直接调用使用具体代码如下 using System; using System.Collections.Gene ...
- Python学习指南
学习python书籍&资料: 1. Python v2.7.5 documentation 2. [Python参考手册(第4版)].(美)比兹利.扫描版.pdf 3. [Python技术手册 ...
- C# Socket连接请求超时机制
作者:RazanPaul 译者:Todd Wei 原文:http://www.codeproject.com/KB/IP/TimeOutSocket.aspx 介绍 您可能注意到了,.Net的Syst ...
- mysql数据库本地化操作
<?php if(!defined('SITE_PATH')){ define('SITE_PATH',dirname(dirname(__FILE__))); } $dbconfig=incl ...