前言
我好菜我好菜我好菜我好菜我好菜
我好菜我好菜我好菜我好菜我好菜
我好菜我好菜我好菜我好菜我好菜
我好菜我好菜我好菜我好菜我好菜
我好菜我好菜我好菜我好菜我好菜
我好菜我好菜我好菜我好菜我好菜
心态大崩
ZYCdalaoZYCdalaoZYCdalao去AKBAK\ BAK B组了所以应该是我垫底了
话说今天好多暴力都可以ACACAC的题目而我还在死刚正解,以后还是得注意了
成绩
JJJ表示初中,HHH表示高中后面加的是几年级
RankRankRank | PersonPersonPerson | ScoreScoreScore | AAA | BBB | CCC |
---|---|---|---|---|---|
333 | (J−3)ZZY(J-3)ZZY(J−3)ZZY | 263263263 | 100100100 | 100100100 | 636363 |
151515 | (J−3)WHF(J-3)WHF(J−3)WHF | 140140140 | 404040 | 100100100 | 000 |
272727 | (J−2)LRZ(J-2)LRZ(J−2)LRZ | 100100100 | 100100100 | 000 | 000 |
343434 | (J−2)XJQ(J-2)XJQ(J−2)XJQ | 858585 | 858585 | 000 | 000 |
404040 | (J−3)QYH(J-3)QYH(J−3)QYH | 727272 | 434343 | 242424 | 555 |
424242 | (J−2)XXY(J-2)XXY(J−2)XXY | 666666 | 555555 | 000 | 111111 |
545454 | (J−2)LW(J-2)LW(J−2)LW | 333333 | 333333 | 000 | 000 |
585858 | (J−2)HJQ(J-2)HJQ(J−2)HJQ | 262626 | 000 | 262626 | 000 |
616161 | (J−2)HZB(J-2)HZB(J−2)HZB | 202020 | 202020 | 000 | 000 |
646464 | (J−2)WYC(J-2)WYC(J−2)WYC | 777 | 000 | 777 | 000 |
656565 | (J−2)ZYC(J-2)ZYC(J−2)ZYC | 666 | 666 | 000 | 000 |
正题
T1:jzoj3337−[NOI2013T1:jzoj3337-[NOI2013T1:jzoj3337−[NOI2013模拟]wyl8899]wyl8899]wyl8899的TLETLETLE【字符串hash,hash,hash,二分】
链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/95209417
T2:jzoj3338−[NOI2013T2:jzoj3338-[NOI2013T2:jzoj3338−[NOI2013模拟]]]法法塔的奖励【权值线段树,,,线段树合并】
链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/95209896
T3:jzoj3339−[NOI2013T3:jzoj3339-[NOI2013T3:jzoj3339−[NOI2013模拟]wyl8899]wyl8899]wyl8899和法法塔的游戏【博弈论,,,暴力】
链接:
https://blog.csdn.net/Mr_wuyongcong/article/details/95210406
someofcodesome\ of\ codesome of code
T27T2\ 7T2 7分codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int N=101000;
int n,tot,ls[N],w[N],num[N],maxs[N],seg[N],cnt;
int ans[N],tail,siz[N],son[N],p[N],id[N],ed[N];
struct Edge_node{int to,next;
}a[N*2];
struct Tree_node{int w,l,r,c;
};
vector<int> q[N],c[N];
struct Line_cut_tree{Tree_node t[N<<2];void megre(Tree_node &t,Tree_node tl,Tree_node tr){t.w=tl.w+tr.w;t.c=max(tl.c,tr.c);}void build(int x,int l,int r){t[x].l=l;t[x].r=r;if(l==r){t[x].w=0;t[x].c=0;return;}int mid=(l+r)/2;build(x*2,l,mid);build(x*2+1,mid+1,r);megre(t[x],t[x*2],t[x*2+1]);}int Ask(int x,int l,int r){if(t[x].l==l&&t[x].r==r)return t[x].c;if(r<=t[x*2].r) return Ask(x*2,l,r);else if(l>t[x*2].r) return Ask(x*2+1,l,r);else return max(Ask(x*2,l,t[x*2].r),Ask(x*2+1,t[x*2+1].l,r));}void Change(int x,int pos,int z){if(t[x].l==t[x].r){t[x].w++;t[x].c=z;return;}if(pos<=t[x*2].r) Change(x*2,pos,z);else if(pos>t[x*2].r) Change(x*2+1,pos,z);megre(t[x],t[x*2],t[x*2+1]);}
}Tree;
void addl(int x,int y)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
void ycl(int x)
{siz[x]=1;for(int i=ls[x];i;i=a[i].next){int y=a[i].to;ycl(y);siz[x]+=siz[y];if(siz[y]>siz[son[x]]) son[x]=y;}
}
void dfs(int x,int top)
{if(!son[x]){ans[x]=1;if(top!=x)Tree.Change(1,w[x],1);return;}id[x]=++cnt;seg[cnt]=x;for(int i=ls[x];i;i=a[i].next){int y=a[i].to;if(y==son[x]) continue;dfs(y,y);}int mid=cnt;dfs(son[x],x);for(int i=id[x]+1;i<=mid;i=ed[seg[i]]+1){for(int j=i;j<=ed[seg[i]];j++){int z=max(Tree.Ask(1,1,w[seg[j]]),ans[seg[j]]);Tree.Change(1,w[seg[j]],z);}}int z=Tree.Ask(1,1,w[x]);ans[x]=z+1;Tree.Change(1,w[x],z+1);ed[x]=cnt;if(top==x)for(int i=id[x];i<=ed[x];i++)Tree.Change(1,w[seg[i]],ans[seg[i]]-1);
}
int main()
{scanf("%d",&n);Tree.build(1,1,n);for(int i=1;i<=n;i++){int x;scanf("%d",&x);if(i==1) continue;addl(x,i);}for(int i=1;i<=n;i++)scanf("%d",&w[i]);ycl(1);dfs(1,1);for(int i=1;i<=n;i++)printf("%d ",ans[i]);
}
总结
很烦不想写
-_-\color{darkblue}\texttt{-\_-}-_-
最后的最后
❤这使你充满了决心\color{red}\begin{matrix}\huge{❤} \end{matrix}\color{white}\\\texttt{这使你充满了决心}❤这使你充满了决心