知识点模块

1.一个正方体x,y,z里面可以放多少个边长为a,b,c的长方体

ans=(x-a+1)*(y-b+1)*(z-c+1)

题解模块

A.Creating Words

交换两个字母的首字母即可swap实现即可

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
#define all(v) v.begin(),v.end() void solve()
{
string a,b;
cin>>a>>b;
swap(a[0],b[0]);
cout<<a<<" "<<b;
cout<<endl;
} signed main()
{ int t=1;
cin>>t;
while(t-- ) solve();
return 0;
}

B. Maximum Multiple Sum

要让一个数的倍数加起来总和最大,显然就是只要这个数不是3的时候,任何一个数(题给的数范围大于等于2)的2和其倍数的总和加起来最大。因为2的倍数会在这个范围里数量最多,不会有一个奇数比2的倍数多,任何偶数都是2的倍数

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
#define all(v) v.begin(),v.end() void solve()
{
int n;
cin>>n;
if(n==3) cout<<3<<endl;
else cout<<2<<endl;
} signed main()
{ int t=1;
cin>>t;
while(t-- ) solve();
return 0;
}

C. Good Prefixes

从左往右按顺序遍历,每次算前缀和,减掉当前遍历到的这些数的最大值,如果这个数等于该最大值,说明前面这个几个数加起来就是这个最大值,符合题意

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
#define all(v) v.begin(),v.end() void solve()
{
int n;
cin>>n;
vector<int>v(n);
for(int i=0;i<n;i++) cin>>v[i];
int sum=0,maxx=0,ans=0;
for(int i=0;i<n;i++)
{
sum+=v[i];
maxx=max(maxx,v[i]);
if(sum-maxx==maxx) ans++;
}
cout<<ans<<endl;
} signed main()
{ int t=1;
cin>>t;
while(t-- ) solve();
return 0;
}

D. Manhattan Circle

直接锁定最多#的这一行,然后记录一下最多有几个这个符号,记录一下这行的最后一个#的位置,然后就可以根据数量和最后一个位置推出他的中心

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
#define all(v) v.begin(),v.end() void solve()
{
int n,m;
cin>>n>>m;
string s;
int maxx=-1,ans=0,cc=0;
for(int i=1;i<=n;i++)
{
cin>>s;
int cnt=0,pos=0;
for(int j=0;j<s.size();j++)
{
if(s[j]=='#') {
cnt++;
pos=j;
}
maxx=max(maxx,cnt);
if(maxx==cnt) ans=pos,cc=i;
}
} cout<<cc<<" "<<ans+1-maxx/2<<endl;
} signed main()
{ int t=1;
cin>>t;
while(t-- ) solve();
return 0;
}

E. Secret Box

1.因为小方体的体积是k,所以边长一定是k的除数,那么就可以枚举a,b然后c用k%(a * b),如果不是0或者大于z退出循环

2.然后用知识点1,计算验证取最大值即可

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
#define all(v) v.begin(),v.end() void solve()
{
int x,y,z,k;
int ans=0;
cin>>x>>y>>z>>k;
for(int i=1;i<=x;i++)
{
for(int j=1;j<=y;j++)
{
if(k%(i*j)) continue;//必须是k的除数
int c=k/(i*j);
if(c>z) continue;
int tt=(x-i+1)*(y-j+1)*(z-c+1);
ans=max(tt,ans);
}
}
cout<<ans<<endl;
} signed main()
{ int t=1;
cin>>t;
while(t-- ) solve();
return 0;
}

F. Final Boss

1.使用set容器存放点,每个点{turn,i},就是攻击力的轮数和攻击力大小的索引,每一轮攻击完以后,删除这个点,然后存对应攻击可以使用的下一次轮数{turn+c[i],i},然后直到h<0即可

2.为什么这样可以满足最小回合呢?因为你第一轮如果没法将boss杀死以后,攻击力大的对应的使用轮数也会大,所以按照上述存放点是可以满足的

点击查看代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int,int> pii;
#define all(v) v.begin(),v.end() void solve()
{
int h,n;
cin>>h>>n;
vector<int>a(n),c(n);
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++) cin>>c[i];
set<pii>se;
for(int i=0;i<n;i++) se.insert({1,i});
int ans=1;
while(h>0)
{
auto [turn,i]=*se.begin();
se.erase(se.begin());
h-=a[i];
ans=turn;
se.insert({turn+c[i],i});
}
cout<<ans<<endl; } signed main()
{ int t=1;
cin>>t;
while(t-- ) solve();
return 0;
}

G. D-Function

等我补补

Codeforces Round 952 (Div. 4)的更多相关文章

  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. [docker逃逸] Privileged 特权模式逃逸复现

    本文作者CVE-柠檬i CSDN:https://blog.csdn.net/weixin_49125123 博客园:https://www.cnblogs.com/CVE-Lemon 微信公众号:L ...

  2. 足球预测:将六场预测法引入AI能增加预测准确率么?

    前言 足球预测的历史可以追溯到200多年前,对足球比赛的结果预测一直是人们所津津乐道的话题.你有了解过这期间涌现过多少足球预测的方法么?过去的人们迫于工具和数据的限制,始终不能高概率的预测足球赛事,但 ...

  3. Kotlin:【数字类型】安全转换函数

  4. 凸n边形的对角线最多能将其内部分成几个区域

    https://math.stackexchange.com/questions/3384251/into-how-many-regions-do-the-sides-and-diagonals-of ...

  5. Ceph PG状态介绍

    本文分享自天翼云开发者社区<Ceph PG状态介绍>,作者:wwwdl 一.基本概念 size:副本数(如三副本,size=3): min_size:支持可读写的最小副本数(如三副本,mi ...

  6. Iceberg根据快照查看文件,根据文件查看哪个快照写入

    一.背景 用户查询iceberg表时报文件为空,因为存在写入和治理程序同时操作iceberg表,需要查看空文件是哪个快照产生的,方便确定是flink写入缺陷还是spark治理缺陷 二.通过Sql查询文 ...

  7. OneDrive分享、多人操作电脑中大文件的方法

      本文介绍基于OneDrive网盘实现电脑大文件共享.协同办公的方法. 1 前言   作为网盘的重度用户,在学习.工作.生活中可以说少不了与各类云盘打交道.在这一过程中,也慢慢了解到不同网盘软件的特 ...

  8. gitlab - [02] 安装部署

    安装部署篇 一.5分钟搭建私人代码仓库 (1)设置环境变量:export GITLAB_HOME=/src/gitlab (2)编写docker-compose.yml mkdir -p /opt/d ...

  9. vue - [02] 安装部署

    Vue.js 是一个流行的前端JavaScript框架,用于构建用户界面. 001 || 通过CND快速开始 只需要在HTML文件中引入VUE的CDN链接即可 (1)创建HTML文件 <!DOC ...

  10. Flink学习(十八) 状态管理与状态编程

    Flink中的状态 由一个任务维护,并且用来计算某个结果的所有数据,都属于这个任务的状态:可以认为状态就是一个本地变量,可以被任务的业务逻辑访问:Flink会进行状态管理,包括状态一致性,故障处理以及 ...