NOIP 2012 T2 国王游戏 (贪心+高精)
思路:
呃呃网上那么多题解写得都不错…..
就是高精 巨坑。。。
这里展出的是任氏高精(纯自己yy滴)
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,temp[5555],len,A[5555],ans[5555],ans_max;
char s[11],jya[11];
struct Node{
char a[11];
int alen,b;
}node[1005];
bool cmp(Node x,Node y){
int xa=0,ya=0;
for(int i=x.alen-1;~i;i--)xa=xa*10+x.a[i];
for(int i=y.alen-1;~i;i--)ya=ya*10+y.a[i];
return xa*x.b<ya*y.b;
}
int main(){
scanf("%d",&n);
scanf("%s%d",s,&node[0].b);
len=strlen(s)-1;
for(int i=0;i<=len;i++)A[i]=s[len-i]-'0';
for(int i=1;i<=n;i++){
scanf("%s%d",jya,&node[i].b);
node[i].alen=strlen(jya);
for(int j=0;j<node[i].alen;j++)
node[i].a[j]=jya[node[i].alen-j-1]-'0';
}
sort(node+1,node+1+n,cmp);
for(int i=1;i<=n;i++){
memset(temp,0,sizeof(temp));
int res=0,maxx=0;
for(int j=len;~j;j--){
res=res*10+A[j];
temp[j]=res/node[i].b;
if(temp[j])maxx=max(maxx,j);
res=res%node[i].b;
}
for(int j=5000;~j;j--)
if(ans[j]<temp[j]){
for(int j=maxx;~j;j--)
ans[j]=temp[j];
ans_max=maxx;
break;
}
else if(ans[j]>temp[j])break;
memset(temp,0,sizeof(temp));
for(int j=0;j<=len;j++)
for(int k=0;k<node[i].alen;k++)
temp[j+k]+=A[j]*node[i].a[k];
for(int j=0;j<=len+10;j++){
temp[j+1]+=temp[j]/10;
temp[j]=temp[j]%10;
if(temp[j])len=j;
}
for(int j=len;~j;j--)A[j]=temp[j];
}
for(int j=ans_max;~j;j--)printf("%d",ans[j]);
}
NOIP 2012 T2 国王游戏 (贪心+高精)的更多相关文章
- P1080 【NOIP 2012】 国王游戏[贪心+高精度]
题目来源:洛谷 题目描述 恰逢 H国国庆,国王邀请n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王 ...
- 国王游戏 2012年NOIP全国联赛提高组(贪心+高精)
P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成 ...
- 【CodeVS 1198】【NOIP 2012】国王游戏
http://codevs.cn/problem/1198/ 推导一翻,排好序后,直接上高精度. #include<cstdio> #include<cstring> #inc ...
- [贪心][高精]P1080 国王游戏(整合)
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最 ...
- noip 2012 国王游戏(贪心+高精)
/* 我是不会说我考试的时候想到了正解却把金币取大看成金币求和的.... 觉得只按左右手乘积排序不太对 有反例 也可能我反例放到这个题里是错的吧 按自己的理解排的序 就是各种讨论... 假设 第i个人 ...
- luoguP1080 国王游戏 题解(NOIP2012)(贪心+高精)
luoguP1080 国王游戏 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include& ...
- 矩阵取数游戏 2007年NOIP全国联赛提高组(dp+高精)
矩阵取数游戏 2007年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description [问题描述]帅帅经常跟 ...
- P1080 国王游戏 贪心 高精度
题目描述 恰逢 HH国国庆,国王邀请nn 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 nn 位大臣排成一排,国王站在队伍的 ...
- NOIP2012 DAY1 T2 国王游戏
题目描述 恰逢 H国国庆,国王邀请n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最前面 ...
随机推荐
- ubuntu软件卸载方法
一.查看软件包 1.查看已安装的软件包 dpkg --list 2.查看不知道要删除软件的具体名称 dpkg --get-selections | grep <软件相关名称> 二.卸载 1 ...
- canvas绘制饼型图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 构造器参数过多时考虑使用构建器(Builder)
一.静态工厂和构造器的局限性 面对需要大量可选参数才能构建对象时,静态工厂和构造器并不能随着可选参数的增加而合理扩展. 假设创建一个类Person需要使用大量的可选参数,其中两个参数是必填的,剩下的都 ...
- jsp错误页面的处理
局部的错误处理 1,errorpage 在错误页面指令page中声明errorpage="要显示的页面地址" 在要显示的页面page中声明iserrorpage="tru ...
- 【洛谷4941】War2 状压Dp
简单的状压DP,和NOIP2017 Day2 找宝藏 代码几乎一样.(比那个稍微简单一点) f[i][j] ,i代表点的状态,j是当前选择的点,枚举上一个选到的点k 然后从f[i-(1<< ...
- js 事件监听,执行某操作
<script language=javascript> var ie; var firefox; if (document.all) ie = true; else ie = false ...
- python3 将两个列表生成一个字典
需求: 存在两个list如下 list1 = ["one", "two", "three"] list2 = ["1", ...
- JS数据分组[JSON]
JS 数据分组 var arr = [{ "id": "1001", "name": "值1", "value ...
- Python 绘图与可视化 matplotlib 散点图、numpy模块的random()
效果: 代码: def scatter_curve(): # plt.subplot(1,1,1) n=1024 X=np.random.normal(0,1,n) Y=np.random.norma ...
- 用pycharm运行django项目
[点击]run -> Edit Configrations 弹出如下页面 点击“+” 点击Django server 在弹出页面的host填0.0.0.0 点击这个“文件夹” 点击‘+’后填下面 ...