前言
T4 暴力居然爆 $0$ 了,非常诡异,本来感觉拿个 $n^2\log n$ 的糖糖分数还是可以的。
T5 依旧想了个非常伪的做法,甚至还没调出来,好在虽然伪但是拿到了多重背包的部分分。
T6 没时间看了。
可是啊
数学瞎搞一通。
C++
#include<bits/stdc++.h>
using namespace std;
#define int long long
int c,T,a,b;
signed main(){
cin>>c>>T;
while(T--){
cin>>a>>b;
int awa=sqrt(a);
int klz=(sqrt(1+4*b)-1)/2;
if(awa<=klz) cout<<"AKTang!\n";
else cout<<"AWaDa!\n";
}
return 0;
}世界线交汇
依旧瞎搞。
C++
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
int c,T,n,a,x;
signed main(){
cin>>c>>T;
while(T--){
cin>>n>>a>>x;
int ans=(n*x)%mod;
int num[2]={0,0},now=n;
num[n%2]++;
while(now>0){
if(now>1) ans=(ans+num[now%2]*(now/a))%mod;
ans=(ans+num[(now+1)%2]*((now+1)/a))%mod;
int n0=num[0],n1=num[1];
num[(now/2)%2]=(2*n0+n1)%mod;
num[(now/2+1)%2]=n1%mod;
now/=2;
}
cout<<ans<<"\n";
}
return 0;
}终究是一场梦
还是瞎搞。
C++
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+5;
int c,T,n,k;
int a[N],p[N],tag[N],sum[N];
struct BIT{
int tr[N];
vector<pair<int,int>> v;
void add(int x,int k){
for(;x<=n;x+=x&-x){
tr[x]+=k;
v.push_back({x,k});
}
}
int query(int x){
int res=0;
for(;x;x-=x&-x) res+=tr[x];
return res;
}
void clear(){
for(int i=0;i<v.size();i++) tr[v[i].first]-=v[i].second;
v.clear();
}
}bit;
signed main(){
scanf("%d%d",&c,&T);
while(T--){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++) scanf("%d",a+i),p[a[i]]=i,tag[i]=0;
int idx=1;
while(k>0&&idx<=n){
int id=p[idx]+bit.query(p[idx]);
if(idx==id) tag[idx]=1,printf("%d ",idx++);
else if(k>0){
tag[idx]=1,printf("%d ",idx);
k--,bit.add(1,1),bit.add(p[idx],-1),idx++;
}
}
for(int i=1;i<=n;i++) if(!tag[a[i]]) printf("%d ",a[i]);
printf("\n");
bit.clear();
}
return 0;
}


Comments NOTHING