上午
原题链接
T1 赛时线段树写炸了所以交了一个暴力代码上去(真的很暴力,直接几个for循环跑过去),然后喜提30分又是被cqr和cjx薄纱的一天呢
在这题改题的时候遇到了个奇葩的事,当我CPP源文件命名为2023.7.18 T1时编译时就会错误(指能输入数据但并没有被读到程序里,输入量达到一定值后会结束程序,然而到结束程序为止都没有执行主函数输入部分全部在主函数,我在主函数第一行打了个输出(输入之前))然而更奇怪的是我把源文件换了个名字就可以了,所以我怀疑是第一个名字撞上了什么奇怪的东西导致的
贴个半成品代码吧
#include
using namespace std;
int s,q,a[800005],p,l,r,cn,cs,pz,pl,pr,xn,posi;
int t[25];
int v[800005],ans;
bool ss[200005];
void ycl()
{
int xx=1;
for(int i=1;i=s&&s>xx/4)
{
cn=xx/2;
cs=i;
}
}
for(int iii=1;iii<=s*4;iii++)
{
v[iii]=-1;
a[iii]=-1;
}
}
void qujianxiugai(int ll,int rr)
{
// cout<<"wdwd"<<endl;
ll+=cn-1;
rr+=cn-1;
// cout<<" ts1 ll rr == "<<ll<<" "<<rr<=1;ip--)
{
if(ll%2==1)
{
a[ll]=pz;
v[ll]=pz;
ll=ll/2+1;
}
else
{
a[ll]=pz;
// a[ll+1]=pz;
v[ll]=pz;
// v[ll+1]=pz;
ll=ll/2+1;
}//ll=5
if(rr%2==0)
{
a[rr]=pz;
v[rr]=pz;
rr=rr/2-1;
}
else
{
a[rr]=pz;
// a[rr+1]=pz;
v[rr]=pz;
// v[rr+1]=pz;
rr=rr/2;
}
// cout<<"ts2 ll rr == "<<ll<<" "<<rr<<endl;
if(rr==ll)
{
a[ll]=pz;
v[ll]=pz;
break;
}
if(rr<ll)
{
break;
}
}
}
void qujianchaxun(int pos)
{
if(pos!=0)
{
// cout<<"Dwdwhththtd "<<pos<<endl;
qujianchaxun(pos/2);
// pos/=2;
posi++;
if(v[pos]!=-1)
{
a[pos*2]=v[pos];
a[pos*2+1]=v[pos];
v[pos]=-1;
}
// cout< "<<t[posi]<<" "<<posi<<endl;
cout<<"tes1 "<<a[pl]<<" "<<a[pr]<=t[posi])
{
pl=pl*2-1;
}
else
{
pl=pl*2;
}
}
else
{
pl=pl*2+1;
}
if(a[pr]==0)
{
if(a[pr*2+1]==0&&pr*2+1<t[posi-1])
{
pr=pr*2+1;
}
else
{
pr=pr*2+1;
}
}
else
{
pr=pr*2;
}
cout< "<<pl<<" "<<pr<>s>>q;
// if(s*q<=50000000)
// {
// for(int ii=1;ii>p;
// if(p==1)
// {
// cin>>l>>r;
// for(int i=l;i>l>>r;
// for(int i=l;i>xn;
// ans=-1;
// int infp=0;
// for(int i=xn;i=1;i--)
// {
// if(i==1)
// {
// infp=1;
// break;
// }
// if(ss[i]==0)
// {
// ans++;
// }
// else
// {
// break;
// }
// }
// if(ans==-1)
// {
// cout<<"0"<<endl;
// }
// else
// {
// if(infp==1)
// {
// cout<<"INF"<<endl;
// }
// else
// {
// cout<<ans<<endl;
// }
// }
// }
// }
// }
// else
{
ycl();
for(int ii=1;ii>p;
if(p==1)
{
cin>>l>>r;
pz=1;
qujianxiugai(l,r);
}
if(p==2)
{
cin>>l>>r;
pz=0;
qujianxiugai(l,r);
}
if(p==3)
{
cin>>xn;
pl=1;
pr=1;
if(xn%2==1)
{
xn--;
}
posi=0;
// qujianchaxun(xn);
// cout<<"======== "<<pr<<" "<<pl<<endl;
cout<<pr-pl<<endl;
for(int i=1;i<cn;i++)
{
if(v[i]!=-1)
{
a[i*2]=v[i];
a[i*2+1]=v[i];
v[i]=-1;
}
}
cout<<a[1]<<endl;
for(int i=cn/4;i<cn/2;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=cn/2;i<cn;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for(int i=cn;i<cn*2;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
cout<<"=================="<<endl;
}
}
}
}
未完待续