题目在这里

A.Carrot Cakes

乱七八糟算出两个时间比较一下就行了

又臭又长仅供参考

#include <bits/stdc++.h>#define rep(i, j, k) for(int i = j;i <= k;i ++)#define rev(i, j, k) for(int i = j;i >= k;i --)using namespace std;typedef long long ll;int main() {ios::sync_with_stdio(false);int n, t, k, d;cin >> n >> t >> k >> d;int t1 = (n + k - 1) / k * t;int t2 = 0;int t3 = (n + k - 1) / k;int t4 = (d + t - 1) / t;int t5 = t3 - t4;if(t5 & 1) t2 = d + (t5 + 1) / 2 * t;else t2 = t4 * t + t5 / 2 * t;if(t2 < t1) puts("YES");else puts("NO");return 0;
}

View Code

B.T-shirt buying

颜色数只有三个,开三个优先队列就行了

然后同一件衣服不要重复卖

#include <bits/stdc++.h>#define rep(i, j, k) for(int i = j;i <= k;i ++)#define rev(i, j, k) for(int i = j;i >= k;i --)using namespace std;const int maxn = 200010;typedef long long ll;struct node {int x, y;bool operator < (const node &a) const {return x > a.x;}
};priority_queue <node> q[4];int n, m, v[maxn], a, b, p[maxn];int main() {ios::sync_with_stdio(false);cin >> n;rep(i, 1, n) cin >> p[i];rep(i, 1, n) cin >> a, q[a].push((node){p[i], i});rep(i, 1, n) cin >> b, q[b].push((node){p[i], i});cin >> m;rep(i, 1, m) {cin >> a;while(!q[a].empty() && v[q[a].top().y]) q[a].pop();if(!q[a].empty()) cout << q[a].top().x << " ", v[q[a].top().y] = 1, q[a].pop();else cout << "-1 ";}return 0;
}

View Code

C.Fountains

三种情况,都用c或d买,一个c一个d

第三种肥肠简单的

前面两种的话

对于新插入的物品,如果价格为x

那么查询一下价格<=(c-x)的物品中的最大beauty

然后两个物品组合一下就行了

查询的话,直接树状数组就可以了,O(nlogn)

需要注意保证是两个不同物品,不能只有一个

 #include <bits/stdc++.h>#define lb(x) (x & (-x))#define rep(i, j, k) for(int i = j;i <= k;i ++)#define rev(i, j, k) for(int i = j;i >= k;i --)using namespace std;typedef long long ll;struct node{int x, y;char str[4];void init() {scanf("%d %d %s", &x, &y, str);}
}a[100010];int n, c, d, e, c1[100010], c2[100010];int ask(int *C, int i) {int ret = 0;while(i > 0) ret = max(ret, C[i]), i -= lb(i);return ret;
}void ins(int *C, int i, int x) {while(i <= e) C[i] = max(C[i], x), i += lb(i);
}int main() {cin >> n >> c >> d, e = max(c, d);int t1 = 0, t2 = 0, t3, t4 = 0, t5 = 0, ans = 0;rep(i, 1, n) {a[i].init();if(a[i].str[0] == 'C' && a[i].y <= c) {if(a[i].x > t1) t1 = a[i].x;t3 = ask(c1, c - a[i].y);if(t3 != 0 && a[i].x + t3 > t4) t4 = a[i].x + t3;ins(c1, a[i].y, a[i].x);} if(a[i].str[0] == 'D' && a[i].y <= d) {if(a[i].x > t2) t2 = a[i].x;t3 = ask(c2, d - a[i].y);if(t3 != 0 && a[i].x + t3 > t5) t5 = a[i].x + t3;ins(c2, a[i].y, a[i].x);} }ans = max(t4, t5);if(t1 != 0 && t2 != 0 && t1 + t2 > ans) ans = t1 + t2;cout << ans;return 0;
}

View Code

我还肥肠脑残地,取消了cin与stdio的同步后

同时用cin和scanf,然后WA了一发...

D.Field expansion

显然ans最大就是loga级别的

所以我们直接暴搜就行了

然后考虑到很骚的情况

a = b = 10W   h = w = 1

ai = 2   n = 10W

这样的话我们用map防重就好了

很重要的一件事情 :

注意到题意说能放下

所以并没有h一定对应a,w一定对应b

也可以试试h怼b,w怼a!

#include <bits/stdc++.h>#define rep(i, j, k) for(int i = j;i <= k;i ++)#define rev(i, j, k) for(int i = j;i >= k;i --)using namespace std;typedef long long ll;int a, b, h, w, n, c[100010];bool cmp(int x, int y) {return x > y;
}typedef pair<ll, ll> node;vector <node> e;map <node,bool> p;int main() {ios::sync_with_stdio(false);cin >> a >> b >> h >> w >> n;rep(i, 1, n) cin >> c[i];sort(c + 1, c + n + 1, cmp);node tmp;if(h >= a && w >= b || w >= a && h >= b) {puts("0");return 0;}e.push_back(make_pair(h, w));for(int i = 1;i <= n;i ++) {int t = e.size();for(int j = 0;j < t;j ++) {if(e[j].first < a) {tmp = make_pair(e[j].first * c[i], e[j].second);if(!p[tmp]) e.push_back(tmp), p[tmp] = 1;} if(e[j].second < b) {tmp = make_pair(e[j].first, e[j].second * c[i]);if(!p[tmp]) e.push_back(tmp), p[tmp] = 1;}    }for(int j = 0;j < e.size();j ++) {if(e[j].first >=  a && e[j].second >= b || e[j].first >=  b && e[j].second >= a) {cout << i;return 0;}}}puts("-1");return 0;
}

View Code

转载于:https://www.cnblogs.com/ytytzzz/p/6843678.html

Codeforces Round #413(Div. 1 + Div. 2, combined)——ABCD相关推荐

  1. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  2. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  3. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

  4. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

  5. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)

    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...

  6. Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs

    传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici​个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...

  7. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环

    传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...

  8. Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays 组合数学

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aia_iai​,定义一个数组是好的当且仅当对于所有iii都有ai!=ia_i!=iai​!=i.定义f(a)f(a)f(a)表示数组aaa中i& ...

  9. Educational Codeforces Round 111 (Rated for Div. 2) E. Stringforces 二分 + 状压dp

    传送门 文章目录 题意: 思路: 题意: 给你一个串,只包含前kkk个字母和???,定义fif_ifi​表示第iii个字母在串中出现的最长连续长度,你现在需要将???替换为前kkk个字母,使得mini ...

  10. Educational Codeforces Round 75 (Rated for Div. 2) E2. Voting (Hard Version) 贪心

    传送门 文章目录 题意: 思路: 题意: n≤2e5,m≤n,p≤1e9n\le2e5,m\le n,p\le 1e9n≤2e5,m≤n,p≤1e9 思路: 首先需要发现一些性质,假设preipre_ ...

最新文章

  1. C++代理类,句柄(智能指针)_C++沉思录笔记
  2. android下载后的app自动安装,Android 7.0 下载APK后自动安装
  3. python基础知识理解
  4. NeHe教程Qt实现——lesson03
  5. Cordova环境搭建
  6. 如何获取并分析Bluetooth HCI层Command Packet和Event Packet包
  7. Zongsoft.Data 发布公告
  8. [css] 什么是FOUC?你是如何避免FOUC的?
  9. ubuntu16.04安装theano
  10. Tungsten Fabric中文社区介绍
  11. 计算机硬件——显示器原理
  12. npm i --save 与 --save -dev的区别
  13. visio2013都提示“正在配置请稍后”
  14. 苹果id登录_英雄联盟手游用苹果id登录显示账号异常的解决方法_英雄联盟手游...
  15. ps如何设置滚动鼠标放大和缩小图像
  16. 简述java异常机制处理,简述Java中异常处理的机制
  17. C语言程序设计教程(第三版)课后习题6.7
  18. python使用手册
  19. 【Java】计算机领域那些乱七八糟其实就是名字的名词[持续更新]
  20. 提高用户体验--子非鱼,须知鱼之乐

热门文章

  1. C++的学习(十)类和对象
  2. java新职篇:面向对象之抽象
  3. WebSocket请求过程分析及实现Web聊天室
  4. pythoon介绍、安装环境、基础知识、练习题
  5. struts 国际化
  6. VC与JAVA DES加密算法互操作
  7. 剑指offer——面试题64:数据流中的中位数
  8. 台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2)
  9. 【译文 Part 1】NEO vs. ETH--为什么NEO可能是2018最强数字货币?
  10. Tensorflow 实战 Google 深度学习框架(第2版)---- 10.2.2节 P272 代码