2024牛客暑期多校训练营6赛后补题
B.Cake 2
题意:一块正n边形的蛋糕,沿着
i
i
i和
i
+
k
i+k
i+k连线切一刀,问能切成几块。
题解:
所以,如果是正
2
n
2n
2n边形,且不经过中心,则答案是
m
i
n
(
k
,
n
−
k
)
∗
k
+
1
min(k,n-k)*k+1
min(k,n−k)∗k+1;
反之,答案是
n
n
n.
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
if(n % 2 == 0)
{
if(n / 2 == k)
{
cout<<n<<endl;
return 0;
}
else
{
k = min(k,n-k);
cout<<(long long)k*n+1<<endl;
}
}
else
{
k = min(k,n-k);
cout<<(long long)k*n+1<<endl;
}
return 0;
}
H.Genshin Impact’s Fault
题意:抽卡游戏,有四种卡片3、4、5、U,规则:十连抽不会只出现3,只能出现UU连续,不会出现55连续,90抽里面有个保底(5或U)
题解:直接模拟
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<math.h>
#define int long long
#define endl "\n"
using namespace std;
int solve(){
string s;
cin>>s;
int l=s.length();
int cnt1=0,cnt2=0,cnt3=0;
bool is=0;
for(int i=0;i<l;i++){
if(s[i]=='3'){
cnt1++;
}
if(s[i]!='3'){
cnt1=0;
}
if(s[i]!='5'&&s[i]!='U'){
cnt2++;
}
if(cnt1>=10){
is=1;
break;
}
if(cnt2>=90){
is=1;
break;
}
if(s[i]=='5'){
cnt3++;
cnt2=0;
}
if(cnt3>=2){
is=1;
break;
}
if(s[i]=='U'){
cnt3=0;
cnt2=0;
}
}
if(is){
cout<<"invalid"<<endl;;
}
else{
cout<<"valid"<<endl;
}
return 0;
}
signed main(){
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
标签:cout,min,int,多校,2024,补题,cnt1,include,cnt2
From: https://blog.csdn.net/qq_50196144/article/details/140855486