闲话:今天是4年一度的奇观——2月29日!(地球人都知道)
所以为了纪念这个特殊的日子,我决定倒着讲。这是什么奇怪的规矩?(雾
Maximizing Productivity:
二分即可。
#include <bits/stdc++.h>
using namespace std;
const int maxn=200005;
int c[maxn],t[maxn],opt[maxn];
int main(){
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++)
cin>>c[i];
for(int i=1;i<=n;i++)
cin>>t[i];
for(int i=1;i<=n;i++){
if(c[i]>t[i])
opt[i]=c[i]-t[i];
else
opt[i]=-1;
}
sort(opt+1,opt+n+1,less<int>());
while(q--){
int v,s;
cin>>v>>s;
int pos=upper_bound(opt+1,opt+n+1,s)-opt;
if((n-pos+1)>=v)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
Milk Exchange:
首先,我们可以模拟。
#include <bits/stdc++.h>
using namespace std;
int main(){
int N,M;
cin>>N>>M;
string s;
cin>>s;
vector<long long> a(N),limit(N);
for(int i=0;i<N;i++){
cin>>a[i];
limit[i]=a[i];
}
while(M--){
vector<long long> cur=a;
for(int i=0;i<N;i++){
if(a[i]>=1){
cur[i]--;
if(s[i]=='L')
cur[(i-1+N)%N]++;
else
cur[(i+1)%N]++;
}
}
for(int i=0;i<N;i++)
cur[i]=min(cur[i],limit[i]);
a=cur;
}
cout<<accumulate(a.begin(),a.end(),0LL)<<endl;
return 0;
}
但是很显然,你会得到一个完美的TLE like this:
所以,怎么优化?
如果是R,是L,那么我就叫这两个操作方向对应的两头奶牛称为两头"亏损对"这意味着,只要有牛奶给"亏损对",这部分奶必然会溢出。所以对于每一个"亏损对",只要求出可能被传递给它左右边的奶量,分别对m取最小值即可求出每个亏损对溢出的奶量。
//十年OI一场空,不开long long开祖宗
#include <bits/stdc++.h>
using namespace std;
int main(){
int N,M;
cin>>N>>M;
string s;
cin>>s;
vector<int> a(N);
for(int i=0;i<N;i++)
cin>>a[i];
vector<bool> badl(N),badr(N);
for(int i=0;i<N;i++){
if(s[i]=='R' && s[(i+1)%N]=='L'){
badl[i]=true;
badr[(i+1)%N]=true;
}
}
int ans=accumulate(a.begin(),a.end(),0LL);
for(int i=0;i<N;i++){
int sum=0;
if(badl[i]){
int j=(i-1+N)%N;
while(s[j]=='R'){
sum+=a[j--];
if(j<0)
j+=N;
}
}
if(badr[i]){
int j=(i+1)%N;
while(s[j]=='L'){
sum+=a[j++];
if(j>=N)
j-=N;
}
}
ans-=min(sum,M);
}
cout<<ans<<endl;
return 0;
}
Palindrome Game:
这是一道结论题,但是我这种傻子不可能猜到的
先说结论:如果n是整十数,E胜,否则B胜。
首先,1到9都回文,所以此时先手必胜。如果呢?很简单,先手直接把n变成10就赢了。所以,整十数是一个必胜点,每次踩到上面就可以了。代码就很简单啦↓
#include <bits/stdc++.h>
using namespace std;
int main(){
int tc;
cin>>tc;
while(tc--){
int S;//注意开string
cin>>S;
if(S%10==0)
cout<<'E'<<endl;
else
cout<<'B'<<endl;
}
return 0;
}
以上就是本期的全部内容了。我们下期再见ヾ( ̄▽ ̄)Bye~Bye~
友情提醒:本期的全部代码都有问题,请不要无脑Ctrl C+Ctrl V