打铜了
爬了
补题:
$I$
一道终极歪榜题
路线事实上一共有$2H$种,可以映射到$[-H,H)$上,$\ge 0 $的部分表示$x=0$时向上
用$map$简单维护一下即可
1 #include<bits/stdc++.h> 2 #define inf 2139062143 3 #define ll long long 4 #define db double 5 #define ld long double 6 #define ull unsigned long long 7 #define MAXN 100100 8 #define MOD 998244353 9 #define Fill(a,x) memset(a,x,sizeof(a)) 10 #define rep(i,s,t) for(int i=(s),i##end=(t);i<=i##end;++i) 11 #define dwn(i,s,t) for(int i=(s),i##end=(t);i>=i##end;--i) 12 #define ren for(int i=fst[x];i;i=nxt[i]) 13 #define pii pair<int,int> 14 #define vi vector<int> 15 #define fi first 16 #define se second 17 #define pb push_back 18 using namespace std; 19 inline int read() 20 { 21 int x=0,f=1;char ch=getchar(); 22 while(!isdigit(ch)) {if(ch=='-') f=-1;ch=getchar();} 23 while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();} 24 return x*f; 25 } 26 namespace CALC 27 { 28 inline int pls(int a,int b){return a+b>=MOD?a+b-MOD:(a+b<0?a+b+MOD:a+b);} 29 inline int mns(int a,int b){return a-b<0?a-b+MOD:(a-b>=MOD?a-b-MOD:a-b);} 30 inline int mul(int a,int b){return (1LL*a*b)%MOD;} 31 inline void inc(int &a,int b){a=pls(a,b);} 32 inline void dec(int &a,int b){a=mns(a,b);} 33 inline void tms(int &a,int b){a=mul(a,b);} 34 inline int qp(int x,int t,int res=1) 35 {for(;t;t>>=1,x=mul(x,x)) if(t&1) res=mul(res,x);return res;} 36 inline int Inv(int x){return qp(x,MOD-2);} 37 } 38 using namespace CALC; 39 int H,n,m,ans; 40 pii g[MAXN<<1]; 41 map<int,int> res; 42 int main() 43 { 44 rep(T,1,read()) 45 { 46 ans=0;res.clear();res[0]=0; 47 H=read();n=read();int x,y,ya,yb,tmp; 48 rep(i,1,n) g[i].fi=read(),g[i].se=read(); 49 m=read();rep(i,1,m) g[i+n].fi=read(),g[i+n].se=0-read(); 50 sort(g+1,g+n+m+1); 51 rep(i,1,n+m) 52 { 53 x=g[i].fi,y=abs(g[i].se); 54 x%=2*H;if(x>=H) y=H-y,x-=H; 55 ya=y-x,yb=y+x<=H?-y-x:2*H-y-x; 56 if(g[i].se>0&&(res.count(ya)||res.count(yb))) 57 tmp=max(res[ya],res[yb]),res[ya]=res[yb]=tmp; 58 else if(g[i].se<0) 59 { 60 if(res.count(ya)) res[ya]++,ans=max(ans,res[ya]); 61 if(res.count(yb)) res[yb]++,ans=max(ans,res[yb]); 62 } 63 } 64 printf("%d\n",ans); 65 } 66 }