2022牛客寒假算法基础集训营1 L E J H F C D A
L 牛牛学走路
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
signed main(){
int t;
cin>>t;
while(t--){
double MA=0;
int n;
cin>>n;
string s;
cin>>s;
int x=0,y=0;
int x1=x;
int y1=y;
for(int i=0;i<s.size();i++){
if(s[i]=='L')y1--;
else if(s[i]=='R')y1++;
else if(s[i]=='U')x1--;
else if(s[i]=='D')x1++;
MA=max(MA,sqrt((double)(x-x1)*(x-x1)+(double)(y-y1)*(y-y1)));
}
printf("%.10lf\n",MA);
}
return 0;
}
E 炸鸡块君的高中回忆
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
signed main(){
int t;
cin>>t;
while(t--){
int n,m;
cin>>n>>m;
if(m==1&&n==1){
cout<<1<<endl;
continue;
}
if(m==1&&n!=1){
cout<<"-1"<<endl;
continue;
}
int dai=m-1;
int g=n-m;
int x=(g+dai-1)/dai;
cout<<x*2+1<<endl;
}
return 0;
}
J 朋友做游戏
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int N=1e4+10;
int a[N],b[N];
bool cmp(int a,int b){
return a>b;
}
signed main(){
int t;
cin>>t;
while(t--){
int x,y,n;
cin>>x>>y>>n;
for(int i=1;i<=x;i++)cin>>a[i];
for(int i=1;i<=y;i++)cin>>b[i];
sort(a+1,a+1+x,cmp);
sort(b+1,b+1+y,cmp);
for(int i=1;i<=x;i++)a[i]+=a[i-1];
for(int i=1;i<=y;i++)b[i]+=b[i-1];
int ans=-1;
for(int i=1;i<=n;i++){
if(i>=1&&i<=x&&n-i<=y&&i>=n-i){
ans=max(ans,a[i]+b[n-i]);
}
}
cout<<ans<<endl;
}
return 0;
}
H 牛牛看云
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int N=1e6+10;
int a[N];
int s[N];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++){
s[i]=a[i]+s[i-1];
}
int res=0;
for(int i=1;i<=n;i++){
int x=1000-a[i];
int l=i,r=n;
while(l<r){
int mid=l+r>>1;
if(a[mid]>=x)r=mid;
else l=mid+1;
}
int sum=l-i;
if(l>i)
res+=1000*sum-(s[l-1]-s[i-1]+(sum)*a[i]);
int sum2=n-l+1;
res+=(s[n]-s[l-1]+(sum2)*a[i])-sum2*1000;
}
cout<<res<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int N=1010;
int a[N];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
a[x]++;
}
int sum=0;
for(int i=0;i<=1000;i++)
for(int j=i;j<=1000;j++){
int dapei=0;
if(i==j)dapei=a[i]+(a[i]*(a[i]-1))/2;
else dapei=a[i]*a[j];
sum+=dapei*abs(1000-(i+j));
}
cout<<sum<<endl;
return 0;
}
F 中位数切分
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int N=1e5+10;
int a[N];
signed main(){
int t;
cin>>t;
while(t--){
int n,m;
cin>>n>>m;
int sum=0;
for(int i=1;i<=n;i++){cin>>a[i];if(a[i]>=m)sum++;}
if(n%2==0){
if(sum<=n/2){cout<<"-1"<<endl;continue;}
}
else{
int mid=(n+1)/2;
if(sum<mid){
cout<<"-1"<<endl;
continue;
}
}
int res=n;
sum=n-sum;
if(sum)
sum+=sum+1;
res-=sum;
if(sum)
res++;
cout<<res<<endl;
}
return 0;
}
C Baby’s first attempt on CPU
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int N=110;
struct node{
int a,b,c;
}nodes[N];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>nodes[i].a>>nodes[i].b>>nodes[i].c;
}
int res=0;
for(int i=1;i<=n;i++){
if(nodes[i].a==1){
res+=3;
nodes[i].a=nodes[i].b=nodes[i].c=0;
nodes[i+1].b=nodes[i+1].c=0;
nodes[i+2].c=0;
}
else if(nodes[i].b==1){
res+=2;
nodes[i].b=nodes[i].c=0;
nodes[i+1].c=nodes[i+1].b=0;
nodes[i+2].c=0;
}
else if(nodes[i].c==1){
res+=1;
nodes[i].c=0;
if(nodes[i+1].b==1){
nodes[i+1].b=0;
nodes[i+1].c=1;
}
else if(nodes[i+1].c==1){
nodes[i+1].c=0;
}
nodes[i+2].c=0;
}
}
cout<<res<<endl;
return 0;
}
D 牛牛做数论
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
int prime[15]={0,2,3,5,7,11,13,17,19,23,29};
int get_prime(int x){
for(int i=2;i*i<=x;i++){
if(x%i==0)return false;
}
return true;
}
signed main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
if(n==1){
cout<<"-1"<<endl;
continue;
}
int l,r;
int sum=1;
for(int i=1;i<=10;i++){
if(sum*prime[i]<=n)sum=sum*prime[i];
}
l=sum;
for(int i=n;i>=1;i--){
if(get_prime(i)){
r=i;
break;
}
}
cout<<l<<' '<<r<<endl;
}
return 0;
}
A 九小时九个人九扇门
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define int long long
#define re register int
#define pb emplace_back
#define lowbit(x) (x&-x)
#define fer(i,a,b) for(re i = a ; i <= b ; i ++)
#define der(i,a,b) for(re i = a ; i >= b ; i --)
#define snow ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a*b/gcd(a,b);}
typedef pair<int,int>PII;
typedef pair<int,string>PIS;
const int N=1e5+10;
const int mod=998244353;
int a[N];
int f[N][10];
int get(int x){
if(x%9==0)return 9;
else return x%9;
}
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]=get(a[i]);
}
f[0][0]=1;
for(int i=1;i<=n;i++){
for(int j=0;j<=9;j++){
f[i][j]=(f[i][j]+f[i-1][j])%mod;
int temp=get(j+a[i]);
f[i][temp]=(f[i][temp]+f[i-1][j])%mod;
}
}
for(int i=1;i<=9;i++)cout<<f[n][i]<<' ';
cout<<endl;
return 0;
}