知识点模块

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. 单点登录-OAuth2

    单点登录的实现原理 单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用不同的单点登录实现方案来 ...

  2. [docker逃逸] Privileged 特权模式逃逸复现

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

  3. Kotlin:【针对空安全管理的操作】安全调用操作符、使用带let的安全调用、非空断言操作符(感叹号操作符)、使用if判断null值情况、使用空合并操作符(类似三元表达式)

     具体使用:

  4. 第10章 LINQ to XML

    第10章 LINQ to XML 10.1 架构概述--DOM 和 LINQ to XML 的 DOM XML 文档可以用一棵对象树完整的表示,这称为"文档对象模型(document obj ...

  5. Apache Camel系列(2)----Hello World

    下面创建一个Apache Camel的Hello World程序,该程序使用Maven,Intellij 15,运行环境是JDK 8.   1,创建一个maven工程,在pom.xml文件中添加apa ...

  6. 闲话 6.19/CF1938M

    CF1938M 计数以下序列 \(\lang a\rang\) 的个数: \[\sum_{i=1}^m a_i=n\\ \forall 1<i<m,(a_i-a_{i-1})(a_i-a_ ...

  7. NOIP2023 游记及反思

    游记 进场前的同学们 柠檬熟了.Nitaycke.Prms_Prmt.b1t zhicheng,meatherm 开题,很快啊, 第一题不就桶排,今年签到没有去年恶心啊(9:00) 第二题,观察到每个 ...

  8. Luogu P11553 ROIR 2016 Day 1 奇怪的字符串 题解 [ 绿 ] [ 后缀自动机 ] [ 枚举 ] [ 观察 ]

    奇怪的字符串:需要一点观察的 SAM 小清新题. 观察 我们首先观察什么样的字符串才是奇怪的,可以发现,首先类似 AAAAAAA 之类全部相等的字符串是奇怪的. 继续观察,如果字符种类变为两种或者三种 ...

  9. 只需简单5步,Ansible脚本自动搭建AlwaysOn集群(已测试通过,可实际运行)

    只需简单5步,Ansible脚本自动搭建AlwaysOn集群(已测试通过,可实际运行) 之前已经介绍过这套脚本,请看下面↓ 一分钟搞定!CentOS 7.9上用Ansible自动化部署SQL Serv ...

  10. 并发编程 - 线程同步(九)之信号量Semaphore

    前面对自旋锁SpinLock进行了详细学习,今天我们将学习另一个种同步机制--信号量Semaphore. 01.信号量是什么? 在 C# 中,信号量(Semaphore)是一种用于线程同步的机制,能够 ...