51nod1093(推公式&找規律)
題目鏈接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1093
題意:中文題誒~
思路:xjb
一開始死活想不出怎麼將一個中間點兩個中間點的情況推廣到多個中間點的情況,然後看了下討論,迷迷糊糊就過了..
下面一段話轉自討論:
路程是这么分的:最后一段肯定是K,且恰好携带K根香蕉
假设 N = a + K,那么剩下的问题就变成怎么从起点0运送K根香蕉到a点了,在a比较小的时候,应该只需要一个补给点,0 ---> a ----> K + a,假设从0到a往返次数为n, 则前向运输的次数为(n + 1)次,返回次数为n次,路途中消耗的香蕉为(2 * n+1) * a,因为骆驼每次运输量至多为K,
则需要满足:
K + (2 * n + 1) * a <= (n + 1) * K
取n = 1,得到 a <= K / 3。这时候,可以反过来证明在 K < N <= K + K / 3的时候,最佳的运输方案是设置一个补给点a,且从0到a 往返一次。
依此类推,N = b + K + K / 3的时候(b较小)设置两个补给点,越后面的路段越长,且往返次数越小。
...
事實上這段話也只是分析了一下1個中間點的情況,不過讓我發現了自己一開始的問題:我沒有給n定值,所以也就不能確定a的值.嘗試給a定值後,可以發現從終點到起點每兩個站點間經過的次數是有規律的,
滿足數列:1, 3, 5, 7, 9....
再注意一下最後的計算結果需要向上取整即可...
代碼:
#include <iostream>
#include <math.h>
using namespace std; int main(void){
int n, k, cnt=;
double ans, len;
cin >> n >> k;
if(k>=n){
cout << n << endl;
return ;
}
ans=len=k;
while(n>len){
cnt+=;
int cc=(cnt-)>>;
double x=((cc+)*k-ans)/(*cc+);
if(len+x>=n){
double gg=n-len;
ans+=gg*cnt;
len=n;
}else{
len+=x;
ans+=cnt*x;
}
}
cout << (int)ceil(ans) << endl;//ceil要轉int輸出,不然會輸出1e..這樣的格式..坑//
return ;
}
51nod1093(推公式&找規律)的更多相关文章
- BZOJ1002輪狀病毒 暴搜 + 找規律 + 高精度
@[暴搜, 找規律, 高精度] Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个\(n\)轮状基由圆环上\(n\)个不同的基原子和圆心处一个核原子构成的,2个 ...
- ZOJ3629 Treasure Hunt IV(找规律,推公式)
Treasure Hunt IV Time Limit: 2 Seconds Memory Limit: 65536 KB Alice is exploring the wonderland ...
- hdu_5810_Balls and Boxes(打表推公式)
题目链接:hdu_5810_Balls and Boxes 题意: 如题,让你求那个公式的期望 题解: 打表找规律,然后推公式.这项技能必须得学会 #include<cstdio> #in ...
- 隱藏在素數規律中的Pi -- BZOJ1041解題報告
退役狗在刷程書的過程中看到了一個有趣的視頻, 講解了一個有趣的問題. 在網上隨便搜索了一下居然還真的找到了一道以它爲背景的OI題目, BZOJ1041. 下面的內容會首先回顧一下視頻所討論的知識, 有 ...
- Balls and Boxes---hdu5810(推公式)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5810 有n个球m个盒子,随机把球放到盒子中,求每个盒子球个数的方差的期望值 E[V]; 推公式吧,或者 ...
- SGU 495 Kids and Prizes:期望dp / 概率dp / 推公式
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=495 题意: 有n个礼物盒,m个人. 最开始每个礼物盒中都有一个礼物. m个人依次随 ...
- HDU6050: Funny Function(推公式+矩阵快速幂)
传送门 题意 利用给出的式子求\(F_{m,1}\) 分析 直接推公式(都是找规律大佬) \(n为偶数,F_{m,1}=\frac{2(2^n-1)^{m-1}}3\) \(n为奇数,F_{m,1}= ...
- HDU 4873 ZCC Loves Intersection(JAVA、大数、推公式)
在一个D维空间,只有整点,点的每个维度的值是0~n-1 .现每秒生成D条线段,第i条线段与第i维度的轴平行.问D条线段的相交期望. 生成线段[a1,a2]的方法(假设该线段为第i条,即与第i维度的轴平 ...
- HDU 4870 Rating(概率、期望、推公式) && ZOJ 3415 Zhou Yu
其实zoj 3415不是应该叫Yu Zhou吗...碰到ZOJ 3415之后用了第二个参考网址的方法去求通项,然后这次碰到4870不会搞.参考了chanme的,然后重新把周瑜跟排名都反复推导(不是推倒 ...
随机推荐
- 初步探讨WPF的ListView控件(涉及模板、查找子控件) - GavinJun
本文结合模板的应用初步介绍ListView的应用 一.Xaml中如何建立数据资源 大部分数据都会来自于后台代码,如何Xaml同样的建立数据源呢?比如建立一个学生List: 首先引入命名空间: xmln ...
- iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)
本文转载至 http://blog.csdn.net/liuwuguigui/article/details/39494597 IOS8UIAlertViewUIActionSheet ...
- EasyDarwin开源流媒体云平台VS调试断点提示“还没有为该文档加载任何符号”的解决办法
本文转自EasyDarwin开源团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/52063666 近日,我们EasyDarwin ...
- 九度OJ 1097:取中值 (中值)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5092 解决:1411 题目描述: 存在两组数组,和4个数字a,b,c,d,要求做如下操作,将第一个数组第a个数到第b个数,第二个数组的第c ...
- Hackerspace
Hackerspace Software - HackerspaceWiki https://wiki.hackerspaces.org/Hackerspace_Software Hackerspac ...
- 服务化之Netty
关于Netty的介绍可参考:https://www.zhihu.com/question/24322387 Netty官网为:http://netty.io/ Git:https://github.c ...
- SDUT OJ 进制转换
进制转换 Time Limit: 1000MS Memory limit: 65536K 题目描述 输入一个十进制数N,将它转换成R进制数输出. 输入 输入数据包含多个测试实例,每个测试实例包含两个整 ...
- 分布式锁(Redis实现)
1.分布式锁解决方案 1.采用数据库 不建议 性能不好 jdbc 2.基于Redis实现分布式锁(setnx)setnx也可以存入key,如果存入key成功返回1,如果存入的key已经存在了,返回 ...
- 实用jQuery代码片段
maco精选的一些jQuery代码,也许你从中可以举一反三[代码] [JavaScript]代码001<p>002 <h3><span >★ 使用jQuery ...
- Numpy中的flatten是按照什么方式进行工作。
a = [[[1,2],[3,4]],[[5,6],[7,8]]] a = np.ndarray(a) array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) type ...