QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#824031#9877. Segment TreeWrongAnswer_90WA 0ms20016kbC++235.9kb2024-12-21 11:45:022024-12-21 11:45:04

Judging History

你现在查看的是最新测评结果

  • [2024-12-21 11:45:04]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:20016kb
  • [2024-12-21 11:45:02]
  • 提交

answer

#include<bits/stdc++.h>
#define ull unsigned long long
#define ui unsigned int
#define ld long double
#define ll long long
#define lll __int128
#define fi first
#define se second
#define e emplace
#define eb emplace_back
#define db double
#define ef emplace_front
#define pii pair<int,int>
#define pll pair<ll,ll>
#define vi vector<int>
#define vp vector<pii>
#define vt vector<tup>
#define all(x) x.begin(),x.end()
#define mp make_pair

#define FastI
#define FastO
//#define Print
#define int ll
bool ST,dbg;
static const ll MOD=998244353,Phi=998244352,inv2=499122177,Root=3,iRoot=332748118;
static const ll inf=1073741823,INF=4611686018427387903;
static const ld eps=1e-9,pi=3.1415926535;
char in[1<<20],*p1=in,*p2=in;
char out[1<<20],*p3=out;
using namespace std;
struct tup
{
	int x,y,z;
	tup(int X=0,int Y=0,int Z=0)
	{x=X,y=Y,z=Z;}
	bool operator <(const tup nd)const
	{return x<nd.x;}
};
#ifdef FastI
	#ifdef Print
		#define getchar() ((p1==p2&&(p2=(p1=in)+fread(in,1,1<<20,stdin),p1==p2)?EOF:*p1),(dbg?cerr<<(char)(*p1),0:0),*p1++)
	#else
		#define getchar() (p1==p2&&(p2=(p1=in)+fread(in,1,1<<20,stdin),p1==p2)?EOF:*p1++)
	#endif
#endif

#ifdef FastO
	#define putchar(x) (p3-out==1<<20?fwrite(out,1,1<<20,stdout),p3=out,0:0,*p3++=x)
	#define puts(x) write(x,'\n')
#endif
namespace FastIO
{
	template<typename T> inline void write(T x,char ch=' ')
	{
		if(is_same<char,T>::value)putchar(x);
		else
		{
			if(x<0)x=-x,putchar('-');
			static char st[25];
			int top=0;
			do st[top++]=x%10+'0',x/=10;while(x);
			while(top)putchar(st[--top]);
		}
		ch!='~'?putchar(ch):0;
	}
	inline void write(const char*x,char ch=' ')
	{
		for(int i=0;x[i]!='\0';++i)putchar(x[i]);
		ch!='~'?putchar(ch):0;
	}
	inline void read(char&s){do s=getchar();while(s=='\n'||s==' ');}
	inline void read(char s[])
	{
		int len=0;char st;
		do st=getchar();while(st=='\n'||st==' ');
		s[++len]=st,st=getchar();
		while(st!='\n'&&st!=' '&&st!='\r')s[++len]=st,st=getchar();
		s[++len]='\0';
	}
	template<typename T> inline void read(T &s)
	{
		char ch=getchar();s=0;
		while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();
		bool tf=(ch=='-'&&(ch=getchar()));
		while(ch>='0'&&ch<='9')s=(s<<1)+(s<<3)+ch-'0',ch=getchar();
		s=tf?-s:s;
	}
	inline void edl(){putchar('\n');}
	template<typename T1,typename T2> inline void read(pair<T1,T2> &s){read(s.fi),read(s.se);}
	template<typename T,typename...Args> inline void write(T x,Args...args){write(x,'~'),write(args...);}
	template<typename T,typename...Args> inline void read(T&x,Args&...args){read(x),read(args...);}
	#ifdef FastO
	struct Writer{~Writer(){fwrite(out,1,p3-out,stdout);}}Writ;
	#endif
}
using namespace FastIO;
namespace MTool
{
	inline int Cadd(int a,int b){return (ll)a+b>=MOD?(ll)a+b-MOD:a+b;}
	inline int Cdel(int a,int b){return a-b<0?a-b+MOD:a-b;}
	inline int Cmul(int a,int b){return 1ll*a*b%MOD;}
	inline int sqr(int a){return 1ll*a*a%MOD;}
	inline void Madd(int&a,int b){a=((ll)a+b>=MOD?(ll)a+b-MOD:a+b);}
	inline void Mdel(int&a,int b){a=(a-b<0?a-b+MOD:a-b);}
	inline void Mmul(int&a,int b){a=1ll*a*b%MOD;}
	inline int Cmod(int x){return (x%MOD+MOD)%MOD;}
	inline void Mmod(int&x){x=(x%MOD+MOD)%MOD;}
	template<typename T> inline bool Mmax(T&a,T b){return a<b?a=b,1:0;}
	template<typename T> inline bool Mmin(T&a,T b){return a>b?a=b,1:0;}
	template<typename...Args> inline void Madd(int&a,int b,Args...args){Madd(a,b),Madd(a,args...);}
	template<typename...Args> inline void Mmul(int&a,int b,Args...args){Mmul(a,b),Mmul(a,args...);}
	template<typename...Args> inline void Mdel(int&a,int b,Args...args){Mdel(a,b),Mdel(a,args...);}
	template<typename...Args> inline int Cadd(int a,int b,Args...args){return Cadd(Cadd(a,b),args...);}
	template<typename...Args> inline int Cmul(int a,int b,Args...args){return Cmul(Cmul(a,b),args...);}
	template<typename...Args> inline int Cdel(int a,int b,Args...args){return Cdel(Cdel(a,b),args...);}
	template<typename...Args,typename T> inline bool Mmax(T&a,T b,Args...args){return Mmax(a,b)|Mmax(a,args...);}
	template<typename...Args,typename T> inline bool Mmin(T&a,T b,Args...args){return Mmin(a,b)|Mmin(a,args...);}
	inline int power(int x,int y){int s=1;for(;y;y>>=1,Mmul(x,x))if(y&1)Mmul(s,x);return s;}
}
using namespace MTool;
namespace WrongAnswer_90
{
	int n,m;
	int f[1<<19],g[1<<19];
	int a[2][1<<19],L[1<<19],R[1<<19];
	int upd(int x,int l,int r,int id)
	{
		int ans=INF;
		Mmin(a[id][L[x]],l),Mmin(a[id][R[x]],r);
		while(x)
		{
			Mmin(a[id][L[x]],a[id][R[x]]+g[x],a[id][R[x<<1]]+g[x<<1]);
			Mmin(a[id][R[x]],a[id][L[x]]+g[x],a[id][L[x<<1|1]]+g[x<<1|1]);
			Mmin(ans,a[id][L[x]]+a[id^1][L[x]]);
			Mmin(ans,a[id][R[x]]+a[id^1][R[x]]);
			x>>=1;
		}
		return ans;
	}
	void clr(int x,int id){while(x)a[id][L[x]]=a[id][R[x]]=INF,x>>=1;}
	void mian()
	{
		int opt,x,y;
		read(n);
		for(int i=1;i<(1<<(n+1));++i)
		read(f[i]),g[i]=f[i];
		for(int i=(1<<n);i<(1<<(n+1));++i)
		L[i]=i-(1<<n),R[i]=i-(1<<n)+1;
		for(int i=(1<<n)-1;i>=1;--i)
		{
			Mmin(g[i],g[i<<1]+g[i<<1|1]);
			L[i]=L[i<<1],R[i]=R[i<<1|1];
		}
		memset(a,127,sizeof(a));
		read(m);
		cerr<<m<<endl;
		while(m--)
		{
			read(opt,x,y);
			if(opt==1)
			{
				f[x]=y;
				if(x>=(1<<n))g[x]=f[x],x>>=1;
				while(x)g[x]=min(f[x],g[x<<1]+g[x<<1|1]),x>>=1;
			}
			else
			{
				int ans=INF;
				if(x<(1<<n))upd((1<<n)+x,0,INF,0);
				if(x>0)upd((1<<n)+x-1,INF,0,0);
				if(y<(1<<n))Mmin(ans,upd((1<<n)+y,0,INF,1));
				if(y>0)Mmin(ans,upd((1<<n)+y-1,INF,0,1));
				if(x<(1<<n))clr((1<<n)+x,0);
				if(x>0)clr((1<<n)+x-1,0);
				if(y<(1<<n))clr((1<<n)+y,1);
				if(y>0)clr((1<<n)+y-1,1);
				write(ans,'\n');
			}
		}
	}
	inline void Mian()
	{
		int T=1,C;
//		read(T);
		for(int _T=1;_T<=T;++_T)
		{
//			dbg=_T==1;
			mian();
		}
	}
}
bool ED;
signed main()
{
//	ios::sync_with_stdio(0);
//	freopen("1.in","r",stdin);
//	freopen("1.out","w",stdout);
	WrongAnswer_90::Mian();
	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 20016kb

input:

3
7 1 14 3 9 4 8 2 6 5 5 13 8 2 3
10
2 0 1
2 0 4
2 4 6
2 4 8
2 3 5
1 6 30
2 3 5
2 4 6
1 1 10000000
2 0 8

output:

0
1
4
8
17
18
13
15

result:

wrong answer 1st words differ - expected: '2', found: '0'