题解:

首先有一个比较显然的事情是如果我们确定了买的次数这道题就可以简单的贪心了

但是答案和买的次数是什么关系呢。。

好像是可以三分的 所以应该是单峰的

这里用了模拟退火,而且是没有处理失败情况的模拟退火

代码:

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll N=;
ll total,f,n,ans;
struct re{
ll a,b;
}a[N];
bool cmp(re x,re y)
{
return(x.a<y.a);
}
double Random() { return rand()/(double) RAND_MAX ;}
/*ll judge(ll x)
{
if (x<=0) return 0;
ll xx=total-f*x,day=0,res=0;
for (ll i=1;i<=n;i++)
{
if (log2(x)+log2(a[i].a)>log2(xx))
{
res+=xx/a[i].a;
break;
}
ll num=min(xx/a[i].a/x,a[i].b-day+1);
day+=num; xx-=num*a[i].a*x;
res+=num*x;
}
ans=max(ans,res);
return(res);
}*/
ll judge(ll times)
{
if(times<=) return ;
ll Money = total - times * f;
ll res = , num, day = ;
for(int i=;i<=n;i++)
{
num = min(Money / a[i].a / times, a[i].b - day + );
Money -= num * a[i].a * times;
day += num; res += times * num;
if(day <= a[i].b)
{
num = Money / a[i].a;
res += num;
ans = max(ans, res);
return res;
}
}
ans = max(ans, res);
return res;
}
void sa(double T)
{
ll now=;
while (T>=)
{
ll a=now+(ll)(T*(Random()*-));
if (a<=) a=T*Random();
ll de=judge(a)-judge(now);
if (de>) now=a;
T*=0.97;
}
}
/*void sa(double T)
{
ll Now = 1;
while(T >= 1)
{
ll A = Now + (ll)(T * (Random()*2-1)) ;
if(A<=0) A = T*Random();
ll dE = judge(A) - judge(Now);
if(dE > 0)
Now = A;
T *= 0.97;
} }*/
int main()
{
srand(time()^size_t(new char));
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
ios::sync_with_stdio(false);
while (cin>>total>>f>>n)
{
ans=;
for(ll i=;i<=n;i++)
cin>>a[i].a>>a[i].b;
sort(a+,a+n+,cmp);
ll m=n,d=-;
n=;
for (ll i=;i<=m;i++)
if (a[i].b>d) a[++n]=a[i],d=a[i].b;
sa(total/f+);
cout<<ans<<endl;
}
return ;
}

bzoj 2832的更多相关文章

  1. 【BZOJ】【1067】 【SCOI2007】降雨量

    思路题 玛雅,这分类讨论快讨论地疯了…… 从huzecong神的题解那里得到的灵感…… 首先考虑最好确定的情况:为true的时候,此时必须同时满足 1.x和y这两年的降雨量已知,且rain[x]< ...

  2. BZOJ 1067 降雨量(RMQ-ST+有毒的分类讨论)

    1067: [SCOI2007]降雨量 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 4399  Solved: 1182 [Submit][Stat ...

  3. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  4. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  5. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  6. bzoj 4610 Ceiling Functi

    bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...

  7. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

  8. 【sdoi2013】森林 BZOJ 3123

    Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...

  9. 【清华集训】楼房重建 BZOJ 2957

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

随机推荐

  1. CodeForces 937D 936B Sleepy Game 有向图判环,拆点,DFS

    题意: 一种游戏,2个人轮流控制棋子在一块有向图上移动,每次移动一条边,不能移动的人为输,无限循环则为平局,棋子初始位置为$S$ 现在有一个人可以同时控制两个玩家,问是否能使得第一个人必胜,并输出一个 ...

  2. 029_shell编写工作常用工具类总结

    一.检查命令的执行结果 function check_result() { result=$? flag=$1 if [[ "$result"x == "0"x ...

  3. pwnable.kr simple login writeup

    这道题是pwnable.kr Rookiss部分的simple login,需要我们去覆盖程序的ebp,eip,esp去改变程序的执行流程   主要逻辑是输入一个字符串,base64解码后看是否与题目 ...

  4. Zabbix监控nginx性能的另外一种方式

    Zabbix监控nginx性能的另外一种方式 nginx和php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有用,为了后续的zabbix监控,我们需要先启用nginx ...

  5. Django 笔记(五)自定义标签 ~ 映射mysql

    创建简单标签: 1-3 或者 2-3 创建包含标签: 1-2或1-3或1-4(推荐) 包含标签使用: 2 和 4对应上面的使用方法 在虚拟环境中安装: pip install pymysql 在set ...

  6. 【进阶1-1期】理解JavaScript 中的执行上下文和执行栈(转)

    这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/tNl5B4uGdMkJ2bNdbbo82g 阅读笔记 执行上下文是当前 JavaScrip ...

  7. Glide高级详解—缓存与解码复用

    Glide 使用简明的流式语法API,大多数情况下,可能完成图片的设置你只需要:Glide.with(activity) .load(url) .into(imageView); 默认情况下,Glid ...

  8. Confluence 6 后台中为站点添加应用导航

    Confluence 6 后台中为站点添加应用导航的连界面和方法. https://www.cwiki.us/display/CONFLUENCEWIKI/Configuring+the+Site+H ...

  9. canvas 保存bitmap到本地

    File f = new File("/sdcard/DCIM/Camera/0.png"); FileOutputStream fos = null; try { fos = n ...

  10. http之理解304

    原文:http://www.cnblogs.com/ziyunfei/archive/2012/11/17/2772729.html 如果客户端发送的是一个条件验证(Conditional Valid ...