2021牛客暑期多校训练营1, 签到题DFBG
Posted 小哈里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021牛客暑期多校训练营1, 签到题DFBG相关的知识,希望对你有一定的参考价值。
2021牛客暑期多校训练营1
题号 标题 已通过代码 通过率 团队的状态
A Alice and Bob 点击查看 1365/5586 通过(博弈论-打表)
B Ball Dropping 点击查看 1682/3110 通过(平面几何)
C Cut the Tree 点击查看 13/67 未通过
D Determine the Photo Position 点击查看 1767/2710 通过(模拟)
E Escape along Water Pipe 点击查看 65/666 未通过
F Find 3-friendly Integers 点击查看 1540/3895 通过(结论-暴力)
G Game of Swapping Numbers 点击查看 402/1102 通过(贪心)
H Hash Function 点击查看 1025/5679 未通过
I Increasing Subsequence 点击查看 194/638 未通过
J Journey among Railway Stations 点击查看 128/809 未通过
K Knowledge Test about Match 点击查看 357/3463 未通过
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5e5+10;
typedef long long LL;
string s[2020];
int main(){
int n, m; cin>>n>>m;
for(int i = 1; i <= n; i++){
cin>>s[i];
}
int ans = 0;
for(int i = 1; i <= n; i++){
int k = 0;
for(auto x : s[i]){
if(x=='0')k++;
else{
ans += max(0,k-m+1);
k = 0;
}
}
ans += max(0,k-m+1);
}
cout<<ans<<"\\n";
return 0;
}
//n>=100时必然合法,暴力枚举1-100
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5e5+10;
typedef long long LL;
int bad[110];
int main(){
for(int i = 1; i <= 100; i++){
if(i%3!=0&&(i%10)%3!=0&&!(i>=10&&(i/10)%3==0))bad[i]=1;
}
int T; cin>>T;
while(T--){
LL l, r; cin>>l>>r;
LL ans = 0;
for(int i = 1; i <= 100; i++){
if(bad[i] && l<=i&&i<=r)
ans++;
}
cout<<(r-l+1-ans)<<"\\n";
}
return 0;
}
//过圆心作水平线和垂线,过b端点作垂线垂直a,夹角相等
#include<bits/stdc++.h>
using namespace std;
const int maxn = 5e5+10;
typedef long long LL;
int main(){
double r,a,b,h;
cin>>r>>a>>b>>h;
if(2*r<b) cout<<"Drop";
else{
cout<<"Stuck\\n";
double j=atan(h/(a/2-b/2));
printf("%.7lf",(r/sin(j)-b/2)*tan(j));
}
return 0;
}
//考虑交换Ai,Aj,可以变优2*[min(Ai,Bi)-max(Aj,Bj)],所以排序,依次取前k大相减取和
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6+10;
typedef long long LL;
LL a[maxn], b[maxn];
int main(){
int n, k; cin>>n>>k;
LL ans = 0;
for(int i = 1; i <= n; i++)cin>>a[i];
for(int i = 1; i <= n; i++){
cin>>b[i];
if(a[i]>b[i])swap(a[i],b[i]);
ans += abs(a[i]-b[i]);
}
sort(a+1, a+n+1);
sort(b+1, b+n+1);
int l = 1, r = n;
while(k>0 && a[r]>b[l]){
ans += 2*(a[r]-b[l]);
l++; r--;
k--;
}
cout<<ans<<"\\n";
return 0;
}
以上是关于2021牛客暑期多校训练营1, 签到题DFBG的主要内容,如果未能解决你的问题,请参考以下文章