BZOJ1583 USACO 2009 Mar Gold 1.Moon Mooing Solution
来源:互联网 发布:淘宝订单管理系统介绍 编辑:程序博客网 时间:2024/06/07 01:43
题意:自行脑补。
Sol:一种显然的方法就是拿堆维护前n小元素,时间复杂度O(nlogn).不过这样会超时。
事实上由于两个函数都是单调递增的,我们用两个指针在同一个序列中进行线性合并并添加元素,不难证明时间复杂度为O(n).
Code:
Heap O(nlogn)
#include <cstdio>#include <cstring>#include <cctype>#include <iostream>#include <algorithm>#include <queue>#include <vector>#include <functional>using namespace std;typedef unsigned long long LU;struct Case {LU x;Case(LU _x = 0):x(_x){}bool operator > (const Case &B) const {return x < B.x;}bool operator < (const Case &B) const {return x > B.x;}};priority_queue<Case> q;int main() {int c, N;scanf("%d%d", &c, &N);register int i, j;int a1, b1, d1;scanf("%d%d%d", &a1, &b1, &d1);int a2, b2, d2;scanf("%d%d%d", &a2, &b2, &d2);q.push(Case(c));LU x, last = 0;for(i = 1; i <= N;) {x = q.top().x;q.pop();if (x != last) {q.push(Case(x * a1 / (LU)d1 + (LU)b1));q.push(Case(x * a2 / (LU)d2 + (LU)b2));last = x;if (i == N)printf("%llu", x);++i;}}return 0;}
Merge Sort O(n)
#include <cstdio>#include <cstring>#include <climits>#include <algorithm>#include <iostream>using namespace std;typedef unsigned long long LU;LU seq[4000010];int main() {int c, N;scanf("%d%d", &c, &N);register int i, j;int a1, b1, d1;scanf("%d%d%d", &a1, &b1, &d1);int a2, b2, d2;scanf("%d%d%d", &a2, &b2, &d2);seq[1] = c;int p1 = 1, p2 = 1;LU nxt1 = seq[1] * a1 / d1 + b1;LU nxt2 = seq[1] * a2 / d2 + b2;for(i = 2; i <= N; ) {if (nxt1 < nxt2) {if (nxt1 != seq[i - 1])seq[i++] = nxt1;nxt1 = seq[++p1] * a1 / d1 + b1;}else {if (nxt2 != seq[i - 1])seq[i++] = nxt2;nxt2 = seq[++p2] * a2 / d2 + b2;}}printf("%llu", seq[N]);return 0;}
0 0
- BZOJ1583 USACO 2009 Mar Gold 1.Moon Mooing Solution
- bzoj1583 [Usaco2009 Mar]Moon Mooing 哞哞叫
- BZOJ1574 USACO 2009 Jan Gold 1.Earthquake Damage Solution
- BZOJ1577 USACO 2009 Feb Gold 1.Fair Shuttle Solution
- BZOJ1574 USACO 2009 Jan Gold 1.Earthquake Damage Solution
- BZOJ1584 USACO 2009 Mar Gold 2.Cleaning Up
- BZOJ1585 USACO 2009 Mar Gold 3.Earthquake Damage 2
- USACO 2010 Mar Gold 1.Great Cow Gathering 树形dp
- TOJ:3210. Moon Mooing
- BZOJ1576 USACO 2009 Jan Gold 3.Safe Travel Solution
- BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution
- USACO 2012 January Contest, Gold Division Solution
- USACO 2009 Mar CleaningUp
- USACO 2009 Mar CowFrisbeeTeam
- 【USACO 2008 Mar Gold】 3.Pearl Pairing 贪心 pq
- BZOJ1591 USACO 2008 Dec Gold 4.Largest Fence Solution
- USACO 2015 February CONTEST,Silver&Gold Division Solution
- USACO 2015 US OPEN CONTEST,Gold Division Solution
- 利用AbstractRoutingDataSource实现动态数据源切换(Spring+Ibatis)
- Eclipse快捷键
- Mongodb安装和使用
- 做最真实的自己,做好seo。你懂的
- javascript正则校验电话号码
- BZOJ1583 USACO 2009 Mar Gold 1.Moon Mooing Solution
- Linux守护进程(init.d和xinetd)
- 关于Provision.apk
- 组合复用原则
- Spring security深入杂谈
- POJ 2182 Lost Cows
- 关于Android RenderScript 的详细说明和一些实用文档
- CAS单点登录配置
- Linux下进程信息的深入分析