Codeforces Round 894 (Div. 3)
Codeforces Round 894 (Div. 3)
A. Gift Carpet
题意:判断一列一个字母有没有“vika”
思路:挨个枚举每一列
#include<bits/stdc++.h>
using namespace std;
char mp[25][25];
char x[]={'v','i','k','a'};
void solve()
{
int m,n;
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>mp[i][j];
}
}
if(n<4){
cout<<"NO"<<endl;
return;
}
int res=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(mp[j][i]==x[res]){
res++;
break;
}
}
}
if(res==4) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
int main()
{
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
B. Sequence Game
题意:操作:删除a[i];结果:给的数组满足a[i]<=a[i+1]
思路:找到a[i]>a[i+1]插入1
#include <bits/stdc++.h>
using namespace std;
const int MAX=4e5;
int a[MAX];
void solve()
{
int n,old,res=1;
cin>>n>>old;
a[0]=old;
for(int i=1;i<n;i++){
int ne;
cin>>ne;
if(old>ne){
a[res]=1;
res++;
}
old=ne;
a[res]=old;
res++;
}
cout<<res<<endl;
for(int i=0;i<res;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
int main()
{
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
C. Flower City Fence
题意:n个宽为1长为a[i]的长方形组成了一个大图,他对称是否重合
思路:只需要他的高度和数量相同就行(画个图就理解了)
#include <bits/stdc++.h>
using namespace std;
const int MAX=2e5+10;
int a[MAX],b[MAX];
void solve()
{
memset(b,0,sizeof(b));
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for (int i = 1; i <= n; ++i)
{
if (a[i] > n)
{
cout<<"NO\n";
return;
}
b[a[i]] = i;
}
for (int i = n; i >= 1; --i)
{
b[i] = max(b[i], b[i + 1]);
if (a[i] != b[i])
{
cout<<"NO\n";
return;
}
}
cout<<"YES\n";
}
int main()
{
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
D. Ice Cream Balls
题意:选择n个数使得两两组合的方案数为n
思路:两个不同的数可组成的方案数是s*(s-1);后面再加入和之前集合中的数相同的数(增加的方案是(s,s)),先二分找到s然后再相加
#include <bits/stdc++.h>
using namespace std;
void solve() {
long long int n;
cin >> n;
long long int l = 2, r = 2e+10;
while (l < r) {
long long int mid = (l + r) / 2;
if (mid * (mid - 1) / 2 < n)
l = mid + 1;
else
r = mid;
}
if (l * (l - 1) / 2 == n)
cout << l << "\n";
else {
long long int t = l - 1, s = t * (t - 1) / 2;
cout << t+n-s << "\n";
}
}
int main() {
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
E. Kolya and Movie Theatre
题意:满意度:(y-x+1)*d,求最大满意度是多少
思路:假设你看的电影场次分别为x,y,z;总要减去的满意度=(x-0)+(y-x)+(z-y)=z;即可得只需要枚举最后一场
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
multiset<int> st;
int a[200010];
void solve()
{
LL n, m, d, ans = 0, sum = 0;
scanf("%lld%lld%lld", &n, &m, &d);
st.clear();
for (int i = 1; i <= n; ++i)
{
scanf("%lld", &a[i]);
if (a[i] > 0 && st.size() < m)
{
st.insert(a[i]);
sum += a[i];
}
else if (*st.begin() < a[i])
{
sum -= *st.begin();
st.erase(st.begin());
sum += a[i];
st.insert(a[i]);
}
ans = max(ans, sum - i * d);
}
printf("%lld\n", ans);
}
signed main()
{
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
F. Magic Will Save the World
题意:一秒可以生成w个水魔法,f个火魔法,初值均为0,第i个怪兽有si点力量,要想打败它需要至少si点火魔法或者水魔法。求出至少要多少分钟来打败这n个怪兽
思路:在某一秒之后,水魔法和火魔法可以瞬间消灭所有的怪兽,其中水魔法消灭了若干只怪兽,火魔法消灭了若干怪兽,我们只要算出两种魔法分别消灭的怪兽的力量和,除以每秒产生的魔法数,分别向上取整,取大就能得到,当前怪兽分配的最小时间。
#include <bits/stdc++.h>
using namespace std;
bitset<1000005> bt;
void solve() {
bt.reset();
int w, f;
cin >> w >> f;
int ans = 0x3f3f3f3f;
int n;
cin >> n;
bt[0] = 1;
vector<int> s(n);
int tot = 0;
for (int i = 0; i < n; i++) {
cin >> s[i];
tot += s[i];
}
for (int i = 0; i < n; i++) {
bt |= bt << s[i];
}
for (int i = 0; i <= tot; i++) {
if (bt[i]) {
ans = min(ans, max((i + w - 1) / w, (tot - i + f - 1) / f));
}
}
cout << ans << '\n';
}
int main() {
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
Codeforces Round 894 (Div. 3)的更多相关文章
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
- Codeforces Round #371 (Div. 1)
A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...
- Codeforces Round #268 (Div. 2) ABCD
CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...
- 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts
题目传送门 /* 贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, ...
随机推荐
- 一篇博客带你上手Git
概述 安装Git 下载官方网站,下载后安装包样式:双击安装,安装成功后右键文件会有如下选项证明安装成功. 基本配置 设置用户信息,桌面右键,选择Git bash here hecheng@LAPTOP ...
- 使用 Vue 实现页面访问拦截
目录 1 Vue 路由与导航守卫 1.1 Vue 路由简介 1.2 导航守卫概述 2 实现访问拦截的核心概念 2.1 路由守卫介绍 2.1.1 前置守卫(beforeEach) 2.1.2 后置钩子( ...
- 后缀数组C++详解
后缀定义 "后缀i"代表以第i个字符开头的后缀,存储是用i代表字符串s的后缀s[i...n] 后缀数组是什么? 后缀数组(Suffix Array)主要关系到两个数组:sa 和 r ...
- 从Element日期组件源码中学到的两个工具方法
最近翻到 ElementUI 的日期组件源码,看到一些处理日期的工具方法,挺有意思,平常没有注意到,特此记录下来. 获取当前日期的前一天,后一天 export const prevDate = fun ...
- c++算法之离散化例题
离散化基础2 题目描述 给定 n 个元素的数列,将相同的数据离散化为一个数据(去重),即把 {4000,201,11,45,11}{4000,201,11,45,11} 离散化为 {4,3,1,2,1 ...
- brpc internal
brpc 内部实现 thread model pthread 1:1atomic cache同步降低性能 fiber n:1 -> nginx 多核难以扩展, 用户不能做阻塞操作. contex ...
- Kafka Stream 高级应用
9.1将Kafka 与其他数据源集成 对于第一个高级应用程序示例,假设你在金融服务公司工作.公司希望将其现有数据迁移到新技术实现的系统中,该计划包括使用 Kafka.数据迁移了一半,你被要求去更新公司 ...
- 618京东到家APP-门详页反爬实战
一.背景与系统安全需求分析 1. 系统的重要性 上图所示是接口所属位置.对电商平台或在线商店而言,分类查商品都是很重要的,通过为用户提供清晰的商品分类,帮助他们快速找到所需产品,节省浏览时间,提升购物 ...
- 2015-CS
2015-CS 数据库部分 create table [EMPLOYEE]( [EmpNo] varchar(10) not null primary key, [EmpName] varchar(1 ...
- c++ 常用的 STL
c++ 中常用的 STL vector //vector 变长数组 倍增的思想(倍增:系统为每一个程序分配空间的时候,所需要的时间和空间大小无关,与请求次数相关)尽量减少请求的次数 /* 返回元素的个 ...