A-自动收小麦机_2023河南萌新联赛第(二)场:河南工业大学 (nowcoder.com)(思路要清晰--NO)
#include
#include
#include
#include
using namespace std;
const int N=100005;
long long sum[N],dp[N];
int a[N],b[N];
int main(){
int n,q,k;
cin>>n>>q>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
sum[i]=sum[i-1]+a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
int p=0,f=0;
for(int i=1;i<=n;i++){
if(p==k-1&&b[i]==b[i-1]){
dp[i]=sum[i]-sum[max(i-k,f-1)];
p=k;
}
else if(b[i]!=b[i-1]){
if(i-f>=k){
dp[i]=a[i]+sum[i-1]-sum[i-k-1];
}
else{
dp[i]=dp[i-1]+a[i];
}
f=i;
p=1;
}
else {
dp[i]=dp[i-1]+a[i];
p++;
}
}
for(int i=0;i>r;
cout<
B-异星突击_2023河南萌新联赛第(二)场:河南工业大学 (nowcoder.com) (正确做法字典树--未学)
//C++(clang++ 11.0.1)比C++(g++ 7.5.0)快
//for(auto it:ma)比for(auto [a,b]:ma)慢
#include
#include
#include
#include
#include
#include
D-固执的RT_2023河南萌新联赛第(二)场:河南工业大学 (nowcoder.com)(签到)
#include
#include
#include
using namespace std;
int main(){
int n,m;
cin>>n>>m;
long long ans=0;
for(int i=0;i>q;
ans+=q;
}
if(ans
E-释怀的RT_2023河南萌新联赛第(二)场:河南工业大学 (nowcoder.com)(差分)
#include
#include
#include
#include
using namespace std;
int a[1000006];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
int q;
cin>>q;
a[max(i-q,1)]+=1;
a[i]-=1;
a[i+1]+=1;
a[min(n,i+q)+1]-=1;
}
long long sum=0,ans=0;
for(int i=1;i<=n;i++){
sum+=a[i];
if(sum>=1){
ans++;
}
}
cout<
G-爬山_2023河南萌新联赛第(二)场:河南工业大学 (nowcoder.com)(二分)
#include
#include
#include
#include
using namespace std;
int n,p;
int a[100006];
int check(int mid){
long long sum=0;
for(int i=0;i=p)return 1;
return 0;
}
int main(){
cin>>n>>p;
int ma=0;
long long sum=0;
for(int i=0;i>a[i];
sum=sum+a[i]*2;
ma=max(a[i],ma);
}
if(suml){
int mid=(l+r+1)/2;
if(check(mid)){
l=mid;
}
else {
r=mid-1;
}
}
cout<
I-奶牛的寿命_2023河南萌新联赛第(二)场:河南工业大学 (nowcoder.com)(NO)
#include
#include
#include
#include
using namespace std;
int main(){
long long n;
cin>>n;
string s;
long long k=log2(n);
long long ma=n;
while(n>0){
s+=n%2+'0';
n/=2;
}
long long sum=0;
for(int i=0,j=s.size()-2;i=0;i--){
ans=ans*2+s[i]-'0';
}
cout<
K-卡特兰数_2023河南萌新联赛第(二)场:河南工业大学 (nowcoder.com)(2和5的应用)
#include
#include
#include
#include
using namespace std;
const int N=5000006;
typedef pairPII;
PII h[N];
long long sum1,sum2;
long long solve1(long long x){
long long ans=0;
while(x%5==0){
ans++;
x/=5;
}
return ans;
}
long long solve2(long long x){
long long ans=0;
while(x%2==0){
ans++;
x/=2;
}
return ans;
}
int main(){
int n;
cin>>n;
h[0].first=0;
h[0].second=0;
for(int i=1;i<=n;i++){
h[i].first=h[i-1].first+solve1(4*i-2)-solve1(i+1);
h[i].second=h[i-1].second+solve2(4*i-2)-solve2(i+1);
sum1+=h[i].first;
sum2+=h[i].second;
}
cout<
131. 直方图中最大的矩形 - AcWing题库(重新学习)
#include
#include
#include
#include
#include