北京金源-D02-汇总
2026-02-11 10:02:07
发布于:北京
接雨水

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[200010],p[200010],s[200010];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
p[i]=max(a[i],p[i-1]);
}
for(int i=n;i>=1;i--){
s[i]=max(a[i],s[i+1]);
}
int sum=0;
for(int i=2;i<=n-1;i++){
int tt=min(p[i-1],s[i+1]);
if(tt>a[i]){
sum+=tt-a[i];
}
}
cout<<sum;
return 0;
}
晚会!
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1000010];
int d[2010];
signed main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int i=1 ,j=1;
int l=1,r=n+1;//输出答案
int cnt=0;
while(j<=n){
//if(cnt!=m && j==n+1)break;
if(cnt == m){
if(r-l > j-i){
l=i;
r=j;
}
d[ a[i] ]--;
if(d[ a[i] ]==0)cnt--;
i++;
}else {
d[ a[j] ]++;
if( d[ a[j] ] == 1)cnt++;
j++;
}
}
cout<<l<<" "<<r-1;
return 0;
}
像2017的数

#include<bits/stdc++.h>
using namespace std;
#define int long long
bool prime(int x){ //判断质数
if(x<=1)return false;
for(int i=2;i<=sqrt(x);i++){
if(x%i==0)return false;
}
return true;
}
int a[100010];//a[i]=1 i是“像2017的数 ”
signed main(){
for(int i=1;i<=100000;i++){
if(prime(i) && prime((i+1)/2)){
a[i]=1;
}
a[i]=a[i-1]+a[i];
//pre[i]=pre[i-1]+a[i];
}
//a[i]代表 1到i之间有多少个“像2017的数”
int q;
cin>>q;
while(q--){
int l,r;
cin>>l>>r;
int cnt=0;
// for(int i=l;i<=r;i++){
// if(prime(i)&&prime((i+1)/2)){
// cnt++;
// }
// }
cout<<a[r]-a[l-1]<<endl;
//cout<<cnt<<endl;
}
return 0;
}
使数组为空的最少操作次数
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1000010];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int m;
cin>>m;
a[m]++;
}
int sum=0;
for(int i=1;i<=1000000;i++){
if(a[i]==1){
cout<<-1;
return 0;
}else if(a[i]%3==0){
sum += a[i]/3;
}else if(a[i]%3==1){
sum += 2 + (a[i]-4)/3;
}else {
sum +=1 +a[i]/3;
}
}
cout<<sum;
return 0;
}
章鱼烧の最少花费
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int n;
cin>>n;
int sum=0;
sum += n/10*100; //n里面10的倍数份章鱼烧
if(n%10<=6) sum += (n%10)*15 ;
else sum += 100;
cout<<sum;
return 0;
}
三个数的最大乘积
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[200010];
signed main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
int maxn = a[n-2]*a[n-1]*a[n];
if(a[1]<0 && a[2]<0){//特殊情况
maxn=max(a[1]*a[2]*a[n],maxn);
}
cout<<maxn;
return 0;
}
重新分装苹果
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[100010];
int b[100010];
signed main(){
int n,m;
cin>>n>>m;
int sum=0;//求和
for(int i=1; i<=n; i++){
cin>>a[i];
sum += a[i];
}
for(int i=1; i<=m; i++){
cin>>b[i];
}
sort(b+1, b+m+1, greater<int>());
for(int i=1 ;i<=m; i++){
if(b[i] < sum){
sum -= b[i];
}
else {
cout << i;
return 0;
}
}
return 0;
}
吃最少的食物
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[200010],b[200010];
signed main(){
int n,x,y;
cin>>n>>x>>y;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
sort(a+1, a+n+1, greater<int>());
sort(b+1, b+n+1, greater<int>());
int sum1=0, sum2=0;
//int t = 0;
for(int i=1;i<=n;i++){
sum1 += a[i];//甜度总和
sum2 += b[i]; //咸度总和
if(sum1 > x || sum2 > y) {
cout << i;
//t = 1;
//break;
return 0;//直接结束
}
}
//if(!t)cout<<n;
cout<<n;
return 0;
}
重排字符串
#include<bits/stdc++.h>
using namespace std;
int main(){
int T;
cin>>T;
while(T--){
string s,t;
cin>>s>>t;
sort(s.begin(),s.end());//对s从小到大
sort(t.begin(),t.end(),greater<char>());//对t从大到小
if(s<t){
cout<<"YES"<<endl;
} else {
cout<<"NO"<<endl;
}
}
return 0;
}
全部评论 20

1周前 来自 北京
0


1周前 来自 北京
0

1周前 来自 北京
0

1周前 来自 北京
0


1周前 来自 北京
0我是D03
1周前 来自 上海
0


1周前 来自 北京
0



1周前 来自 北京
0[广告](
1周前 来自 北京
0#include<bits/stdc++.h> using namespace std; int main(){ int T; cin>>T; while(T--){ string s,t; cin>>s>>t; sort(s.begin(),s.end());//对s从小到大 sort(t.begin(),t.end(),greater<char>());//对t从大到小 if(s<t){ cout<<"YES"<<endl; } else { cout<<"NO"<<endl; } } return 0; }1周前 来自 北京
0真的能通过
1周前 来自 北京
0


1周前 来自 北京
0






















1周前 来自 北京
01周前 来自 北京
0太有帮助了
2026-02-06 来自 北京
0





2026-02-06 来自 北京
0




2026-02-06 来自 北京
0太有格调了



2026-02-06 来自 北京
0
2026-02-06 来自 北京
0

搞个D03以后2026-02-02 来自 北京
0太有格调了
2026-02-02 来自 北京
0




































有帮助,赞一个