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)的更多相关文章

  1. 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 ...

  2. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  3. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  4. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  5. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  6. 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 ...

  7. 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 ...

  8. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

  9. Codeforces Round #268 (Div. 2) ABCD

    CF469 Codeforces Round #268 (Div. 2) http://codeforces.com/contest/469 开学了,时间少,水题就不写题解了,不水的题也不写这么详细了 ...

  10. 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts

    题目传送门 /* 贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, ...

随机推荐

  1. Anaconda+PyCharm+Pytorch/tensorflow环境配置个人总结

    Anaconda是一个非常方便的python版本管理工具,可以很方便地切换不同版本的Python进行测试.同时不同版本之间也不存在相互的干扰. PyCharm是一款常见的Python IDE,pyto ...

  2. 1、MyBatis简介

    1.1.MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code. ...

  3. papricice

    2023-07-14 题目 题目传送门 题目大意 给定一个 \(n\) 个点的树,这 \(n\) 个点编号为 \(1\) 到 \(n\). 现在要选择断掉两条边,会形成三个连通块,假设这三个连通块内的 ...

  4. Gopher进阶神器:拥抱刻意练习,从新手到大师。

    发现一个非常友好的工具,帮助我们回顾练习过程,设定目标,并提供丰富多样的Gopher主题练习题. 刻意练习:从新手到大师. Carol 心理学家 Carol Dweck 做过一个实验,她找了一些十岁的 ...

  5. ATtiny88初体验(六):SPI

    ATtiny88初体验(六):SPI SPI介绍 ATtiny88自带SPI模块,可以实现数据的全双工三线同步传输.它支持主从两种模式,可以配置为LSB或者MSB优先传输,有7种可编程速率,支持从空闲 ...

  6. 【matplotlib基础】--刻度

    Matplotlib中刻度是用于在绘图中表示数据大小的工具. 刻度是坐标轴上的数字或标签,用于指示数据的大小或值,通常以整数或小数表示,具体取决于坐标轴的类型和限制. 1. 主次刻度 默认的绘制时,坐 ...

  7. 在 RedHat Enterprise、CentOS 或 Fedora Linux 上安装 MongoDB

    在 RedHat Enterprise.CentOS 或 Fedora Linux 上安装 MongoDB 1.大纲 备注:采用yum安装后,所有进程将自动在/usr/bin下,如下的mongo.mo ...

  8. tomcat配置域名绑定项目

    有时候我们需要根据访问的不同域名,对应tomcat中不同的项目例如:一个网站同时做了两套,pc版和手机版.手机版对应的域名是m.we-going.com,就需要在tomcat配置文件中加入以下代码:& ...

  9. 使用HTML一键打包EXE工具打包KRPANO全景项目

    HTML一键打包EXE工具(HTML封装EXE, HTML转EXE)能把任意HTML项目(网址)一键打包为单个EXE文件,可以脱离浏览器和服务器,直接双击即可运行. 打包工具群:429338543 最 ...

  10. os --- 多种操作系统接口¶

    os.path --- 常用路径操作 源代码: Lib/posixpath.py (用于 POSIX) 和 Lib/ntpath.py (用于 Windows). 此模块实现了一些有用的路径名称相关函 ...