Codeforces Round #413(Div. 1 + Div. 2, combined)——ABCD
题目在这里
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相关推荐
- Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...
- Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...
- Educational Codeforces Round 37 (Rated for Div. 2) 1
Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...
- 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这个时候两 ...
- 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, ...
- Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs
传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...
- Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环
传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...
- 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& ...
- Educational Codeforces Round 111 (Rated for Div. 2) E. Stringforces 二分 + 状压dp
传送门 文章目录 题意: 思路: 题意: 给你一个串,只包含前kkk个字母和???,定义fif_ifi表示第iii个字母在串中出现的最长连续长度,你现在需要将???替换为前kkk个字母,使得mini ...
- 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_ ...
最新文章
- C++代理类,句柄(智能指针)_C++沉思录笔记
- android下载后的app自动安装,Android 7.0 下载APK后自动安装
- python基础知识理解
- NeHe教程Qt实现——lesson03
- Cordova环境搭建
- 如何获取并分析Bluetooth HCI层Command Packet和Event Packet包
- Zongsoft.Data 发布公告
- [css] 什么是FOUC?你是如何避免FOUC的?
- ubuntu16.04安装theano
- Tungsten Fabric中文社区介绍
- 计算机硬件——显示器原理
- npm i --save 与 --save -dev的区别
- visio2013都提示“正在配置请稍后”
- 苹果id登录_英雄联盟手游用苹果id登录显示账号异常的解决方法_英雄联盟手游...
- ps如何设置滚动鼠标放大和缩小图像
- 简述java异常机制处理,简述Java中异常处理的机制
- C语言程序设计教程(第三版)课后习题6.7
- python使用手册
- 【Java】计算机领域那些乱七八糟其实就是名字的名词[持续更新]
- 提高用户体验--子非鱼,须知鱼之乐
热门文章
- C++的学习(十)类和对象
- java新职篇:面向对象之抽象
- WebSocket请求过程分析及实现Web聊天室
- pythoon介绍、安装环境、基础知识、练习题
- struts 国际化
- VC与JAVA DES加密算法互操作
- 剑指offer——面试题64:数据流中的中位数
- 台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2)
- 【译文 Part 1】NEO vs. ETH--为什么NEO可能是2018最强数字货币?
- Tensorflow 实战 Google 深度学习框架(第2版)---- 10.2.2节 P272 代码