题解:

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

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

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

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

代码:

#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. 链接器link.exe 编译器cl.exe 资源编译器rc.exe

    原文地址:https://blog.csdn.net/biggbang/article/details/24433065 1.cl.exe文件是Visual C\C++的编译器,它将程序源代码文件编译 ...

  2. sonar——Synchronized classes Vector, Hashtable, Stack and StringBuffer should not be used

    It is better to use their new unsynchronized replacements: ArrayList or LinkedList instead of Vector ...

  3. 发布python模块

    首先要写好模块和setup.py,把他们放在同一个文件夹下,图例是放在了stuManage文件夹下,setup.py具体内容如下: 然后打开终端,切到stuManage文件夹下开始发布 现在就可以跟p ...

  4. CXF使用

    一.服务端: 1.web.xml配置 <servlet> <servlet-name>cxf</servlet-name> <servlet-class> ...

  5. centos6.5磁盘扩容

    3台虚拟机都是20G磁盘,用着用着发现不够了,先扩容了一台,各种百度...各种坑,每个人的情况不一样,发现不一样的地方最后立即百度查看.一台扩容成功后,打算再扩容一台,目的是留一个记录.(我是用xsh ...

  6. C#闰年判断

  7. js学习——基础知识

    数据类型 函数.方法 变量作用域 运算符 条件语句 break和continue typeof 错误(异常) 变量提升 严格模式 JSON void(0) JavaScript            ...

  8. Confluence 6 其他需要备份和恢复的地方

    XML 备份被描述用于在 Confluence 备份使用的其他方法,例如升级和移动服务器.使用上面描述的备份和恢复方法也适用这些地方. 我们的 upgrade guide 不要求使用一个 XML 备份 ...

  9. kafka消息存储与partition副本原理

    消息的存储原理: 消息的文件存储机制: 前面我们知道了一个 topic 的多个 partition 在物理磁盘上的保存路径,那么我们再来分析日志的存储方式.通过 ll /tmp/kafka-logs/ ...

  10. 【python】内存调试

    全文拷贝自:http://blog.csdn.net/BaishanCloud/article/details/76422782 问题定位过程解读 gdb-python:搞清楚python程序在做什么 ...