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 - ) / k * t;
int t2 = ;
int t3 = (n + k - ) / k;
int t4 = (d + t - ) / t;
int t5 = t3 - t4;
if(t5 & ) t2 = d + (t5 + ) / * t;
else t2 = t4 * t + t5 / * t;
if(t2 < t1) puts("YES");
else puts("NO");
return ;
}
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 = ;
typedef long long ll;
struct node {
int x, y;
bool operator < (const node &a) const {
return x > a.x;
}
};
priority_queue <node> q[];
int n, m, v[maxn], a, b, p[maxn];
int main() {
ios::sync_with_stdio(false);
cin >> n;
rep(i, , n) cin >> p[i];
rep(i, , n) cin >> a, q[a].push((node){p[i], i});
rep(i, , n) cin >> b, q[b].push((node){p[i], i});
cin >> m;
rep(i, , 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] = , q[a].pop();
else cout << "-1 ";
}
return ;
}
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[];
void init() {
scanf("%d %d %s", &x, &y, str);
}
}a[];
int n, c, d, e, c1[], c2[];
int ask(int *C, int i) {
int ret = ;
while(i > ) 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 = , t2 = , t3, t4 = , t5 = , ans = ;
rep(i, , n) {
a[i].init();
if(a[i].str[] == 'C' && a[i].y <= c) {
if(a[i].x > t1) t1 = a[i].x;
t3 = ask(c1, c - a[i].y);
if(t3 != && a[i].x + t3 > t4) t4 = a[i].x + t3;
ins(c1, a[i].y, a[i].x);
}
if(a[i].str[] == 'D' && a[i].y <= d) {
if(a[i].x > t2) t2 = a[i].x;
t3 = ask(c2, d - a[i].y);
if(t3 != && a[i].x + t3 > t5) t5 = a[i].x + t3;
ins(c2, a[i].y, a[i].x);
}
}
ans = max(t4, t5);
if(t1 != && t2 != && t1 + t2 > ans) ans = t1 + t2;
cout << ans;
return ;
}
我还肥肠脑残地,取消了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[];
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, , n) cin >> c[i];
sort(c + , c + n + , cmp);
node tmp;
if(h >= a && w >= b || w >= a && h >= b) {puts("");return ;}
e.push_back(make_pair(h, w));
for(int i = ;i <= n;i ++) {
int t = e.size();
for(int j = ;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] = ;
}
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] = ;
}
}
for(int j = ;j < e.size();j ++) {
if(e[j].first >= a && e[j].second >= b || e[j].first >= b && e[j].second >= a) {
cout << i;
return ;
}
}
}
puts("-1");
return ;
}
Codeforces Round #413(Div. 1 + Div. 2, combined)——ABCD的更多相关文章
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
- Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)
Problem Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...
- Educational Codeforces Round 43 (Rated for Div. 2)
Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...
- Educational Codeforces Round 35 (Rated for Div. 2)
Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...
- Educational Codeforces Round 63 (Rated for Div. 2) 题解
Educational Codeforces Round 63 (Rated for Div. 2)题解 题目链接 A. Reverse a Substring 给出一个字符串,现在可以对这个字符串进 ...
- Educational Codeforces Round 39 (Rated for Div. 2) G
Educational Codeforces Round 39 (Rated for Div. 2) G 题意: 给一个序列\(a_i(1 <= a_i <= 10^{9}),2 < ...
- Educational Codeforces Round 48 (Rated for Div. 2) CD题解
Educational Codeforces Round 48 (Rated for Div. 2) C. Vasya And The Mushrooms 题目链接:https://codeforce ...
- Educational Codeforces Round 60 (Rated for Div. 2) 题解
Educational Codeforces Round 60 (Rated for Div. 2) 题目链接:https://codeforces.com/contest/1117 A. Best ...
随机推荐
- poj2104 k-th number 主席树入门讲解
poj2104 k-th number 主席树入门讲解 定义:主席树是一种可持久化的线段树 又叫函数式线段树 刚开始学是不是觉得很蒙逼啊 其实我也是 主席树说简单了 就是 保留你每一步操作完成之后 ...
- bzoj3132
二维树状数组 树状数组什么的只支持修改单个数值,但是这道题要我们更新一个区域 盗图 就是这样,然后维护四个bit就行了 #include<bits/stdc++.h> using name ...
- [App Store Connect帮助]三、管理 App 和版本(4)创建新版本
当您准备分发 App 的新版本时,您创建的新版本使用您为原始版本创建的 App 记录.该新版本将对购买过先前版本的顾客免费可用. 各版本使用的 Apple ID(App 标识符).SKU 和套装 ID ...
- 实战篇之实现 OutLook 中以 EDM 形式发送通知邮件
1.写 Html5 的 EDM 模板 EDM 源代码示例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ...
- 329 Longest Increasing Path in a Matrix 矩阵中的最长递增路径
Given an integer matrix, find the length of the longest increasing path.From each cell, you can eith ...
- MyBatis 配置控制台上显示sql语句(log4j.properties 之三)
### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.app ...
- <assert.h>
Diagnostics 定义宏: void assert (scalar-expression); 若expression为0,则打印出错信息(类似Assertion failed: expressi ...
- 五分钟学习React(五):React两种构建应用方式选择
经过这四期的讲解,我们从Hello World应用入手,解释了React最重要的概念JSX,以及两种不同模式的应用构建方法.这一讲我们着重对比传统模式和新模式下的React项目构建,从而为初学者提供学 ...
- 设计模式——“signleton”
那天别人问了我一个问题,关于单例模式的,由于之前了解的都是蜻蜓点水,所以重新复习了一次重新总结. 单例模式的写法总的来说有5种:懒汉,恶汉,枚举,双重校验锁,静态内部类 懒汉 public class ...
- [Windows Server 2008] 服务器安全加固
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:服务器安全加固 ...