CF995
A
link
如果选择这一天做题可以让差增加(即我这一天的题数大于他下一天的题数),则选;否则不选。
特殊的,另一个人地
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n;
int a[105],b[105];
void qwq(){
cin >> n;
for(int i = 1;i <= n;++ i)
cin >> a[i];
for(int i = 1;i <= n;++ i)
cin >> b[i];
b[n+1] = 0;
int ans = 0;
for(int i = 2;i <= n+1;++ i)
if(a[i-1]-b[i] > 0) ans += a[i-1]-b[i];
cout << ans << endl;
}
signed main(){
int t;
cin >> t;
while(t--) qwq();
return 0;
}
B
link
判断即可。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c;
void qwq(){
cin >> n >> a >> b >> c;
int sum = a+b+c;
int w = n/sum;
int q = n%sum;
w *= 3;
if(q != 0&&q <= a) w++;
else if(q != 0&&q <= a+b) w += 2;
else if(q != 0)w += 3;
cout << w << endl;
}
signed main(){
int t;
cin >> t;
while(t--) qwq();
return 0;
}
C
link
如果
如果
如果
用一个
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int hav[300005];
int a[300005];
int q[300005];
void qwq(){
cin >> n >> m >> k;
memset(hav,0,sizeof(hav));
for(int i = 1;i <= m;++ i)
cin >> a[i];
for(int i = 1;i <= k;++ i)
cin >> q[i],hav[q[i]] = 1;
for(int i = 1;i <= m;++ i){
if(k == n) cout << 1;
else if(k < n-1) cout << 0;
else if(hav[a[i]] == 0) cout << 1;
else cout << 0;
}
cout << endl;
}
signed main(){
int t;
cin >> t;
while(t--) qwq();
return 0;
}
D
link
二分,枚举选出来的第一个数(靠前那个)是
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,y;
int a[200005];
int sum;
void qwq(){
cin >> n >> x >> y;sum = 0;
for(int i = 1;i <= n;++ i)
cin >> a[i],sum += a[i];
sort(a+1,a+1+n);
int ans = 0;
for(int i = 1;i < n;++ i){
int w = sum-a[i];
int mn = w-y;
int mx = w-x;
if(mx < a[i+1]) continue;
if(mn > a[n]) continue;
int l = i+1,r = n,mid;
while(l < r){
mid = (l+r)/2;
if(a[mid] >= mn) r = mid;
else l = mid+1;
}
w = r;
l = i+1,r = n;
while(l < r){
mid = (l+r+1)/2;
if(a[mid] <= mx) l = mid;
else r = mid-1;
}
ans += l-w+1;
}
cout << ans << endl;
}
signed main(){
int t;
cin >> t;
while(t--) qwq();
return 0;
}
E
link
可以理解,价钱一定是
那么枚举每一个数,二分算出销售量(有多少个
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k;
int a[200005],b[200005];
int ans;
void solve(int x){
int xl = n-(lower_bound(b+1,b+1+n,x)-b-1);
int cp = xl-(n-(lower_bound(a+1,a+1+n,x)-a-1));
if(cp > k) return;
ans = max(ans,xl*x);
}
void qwq(){
cin >> n >> k;
for(int i = 1;i <= n;++ i)
cin >> a[i];
for(int i = 1;i <= n;++ i)
cin >> b[i];
sort(a+1,a+1+n);
sort(b+1,b+1+n);
ans = 0;
for(int i = 1;i <= n;++ i){
solve(a[i]);solve(b[i]);
}
cout << ans << endl;
}
signed main(){
int t;
cin >> t;
while(t--) qwq();
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析