2021/7/8——集训Day.3

(如果我以后不说睡了个好觉就默认是失眠了)
早上吃的卷饼里面有一截头发,上次吃到头发也是他们家,真离谱
到了机房焦老师说学校的“教育网”能提前一点查成绩,羟基班的人查出来都还不错
郑外的高得梨谱,虽然说外市为了不让好学生往郑州跑,改卷会特意压分,而郑州不会,但是那个郑外的大佬怎么说也不可能 690 + 690+ 690+ 吧!政治还能满分?话说我那时候被压得只有 58 58 58 就已经很高了。
然后我又开始看树形 D P DP DP
上午听大佬讲课
在这里插入图片描述
但是他的板书竟然不是衡水体,太失望了 … … ……
特别自闭,我感觉听数据结构的时候,听课很爽,码代码很自闭,但是动态规划听课时就很自闭,至于码代码 … … …… 如果题会了倒也不算太难(在写下这段字的时候我是这么觉得的)
wmz大佬没有带女朋友过来,挺好的,所以不像jjh学长一样慌着下课(去陪女朋友玩♂♀),第一节课直接一口气上了 2 h 2h 2h,第二节课又是 1 h 1h 1h
中午的时候先 A A A 了个题,然后趴桌上睡觉,zyz学长和jyf学长后天早上就走了,真舍不得啊,祝学长们while(1)noirp++;
这里在说一下那个题吧P2014 [CTSC1997]选课
树形 D P DP DP 板子题一道,感觉又像有依赖的背包 … … ……

#include<bits/stdc++.h>
using namespace std;
#define N 610
int hd[N],n,m,v[N],dp[N][N],tot;struct eo{int y,nxt;}e[N];
void lian(int a,int b){e[++tot].y=b;e[tot].nxt=hd[a];hd[a]=tot;}
void dfs(int a,int b)
{
    if(b<=0)return ;
    for(int i=hd[a];i;i=e[i].nxt)
    {
        int y=e[i].y;
        for(int i=0;i<b;i++)dp[y][i]=dp[a][i]+v[y];
        dfs(y,b-1);
        for(int i=1;i<=b;i++)dp[a][i]=max(dp[a][i],dp[y][i-1]);
    }
}
int main()
{
	scanf("%d%d",&n,&m);int a;
	for(int i=1;i<=n;i++){scanf("%d%d",&a,&v[i]);lian(a,i);}
	dfs(0,m);printf("%d",dp[0][m]);return 0;
}

一开始因为freopen的原因还爆零了几发
中午睡觉的时候突然被吵醒,隐约感觉听到lyn大佬的笑声,然后看到了xf学长,然后又趴桌上看能不能睡个回笼觉,但是过了几分钟感觉还是很清醒,就不睡了,一开始觉得被吵醒有点不爽,但是后来想想之前也吵醒过lyn大佬无数次,而且我清醒的一匹,所以感谢lyn大佬叫我起床(真心)。出贰机回一机的时候听到lyn大佬在跟xf学长 F a k e Fake Fake我。
都说了多少遍了wxhtxdy是指王修涵天下第一,与我无关啊!!!
然后看同级的zyz的洛谷关注里有没有什么惊喜,但是都不认识,除了
在这里插入图片描述
这个神犇, Q Q QQ QQ和洛谷头像+名字+个签都一样,然后看见个人主页里说自己紫名过,就好奇地看了看动态(竟然真的有人会吧洛谷动态当成朋友圈用?!)然后看到了
在这里插入图片描述
我对这个泽宇6有点印象,好像是问他要了个图

然后就想问问她这个人是谁(jyn大佬回寝室睡觉了,真是个大好人啊),然后就自己点开看了看
这不是同级的zyz大佬么!!!!!
直接社死了好吧,原来的时候是lmx大佬想要那个贪吃蛇的动图,然后不好意思要,我觉得都是网络上的人,反正不认识,就随便要了
在这里插入图片描述
真离谱啊,我说为什么看到同级的zyz的头像和个人主页那个贪吃蛇的动图那么眼熟 … … ……
世界真小。
下午的时候太原五中的也来了,是jyh学长也就是冀队儿的学校,冀队儿请我吃过粽子我没给钱,于是让他的小学弟帮忙捎一下(他不认识冀队儿,才初中,但是感觉看起来,emm, O I OI OI催人成熟?)
说起来我还挺想冀队儿的,冀队儿教过我题,还帮我改过代码,祝冀队儿也取得好成绩

下午的课还是很自闭,好多前置知识都不会,太离谱了

吃完饭去和许昌的人打了会儿乒乓球,然后回来之后和zyz学长聊了会儿天,然后赶紧回来学习,刚要用博客记录生活,wl老师给我了个证,(每个人都有个学生证,我那个不小心弄湿了,坏掉了),是个教师证,感觉挺棒的

然后许昌的szx拉我网易云听歌,第一首就是《平胸女子》,很怪。

刚刚gzx路过,我赶紧把博客最小化,但还是被看到了“太离谱了”,真离谱啊。
然后关掉音乐看了一会儿yxc讲的数位 D P DP DP
道理都懂,就是不会写

于是开始写树形 D P DP DP的作业,这时候我已经被碾压了,恶魔妈妈买面膜 … … ……
[POI2008]STA-Station你点了也没用,因为我不想找这个题的链接了。
大意就是:

给一棵树,求一个节点使得当以该节点为树的根时,所有节点的深度和最大

这就算换根 D P DP DP 了。
换根 D P DP DP主要就是二次扫描一下,根节点的变换会导致树的一些信息发生改变
这里不想再自己说了,我是严格按照这个做的:
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
#define N 1000010
int tot,hd[N],shen[N],nxt[N<<1],y[N<<1],n,f[N],ans,maxx,sz[N];
void lian(int a,int b){y[++tot]=b;nxt[tot]=hd[a];hd[a]=tot;}
void dfs1(int x,int fa)
{
	sz[x]=1;
	for(int i=hd[x];i;i=nxt[i])
	{
		if(y[i]==fa)continue;
		shen[y[i]]=shen[x]+1;
		dfs1(y[i],x);
		f[1]+=shen[y[i]];sz[x]+=sz[y[i]];
	}
}
void dfs2(int x,int fa)
{
	for(int i=hd[x];i;i=nxt[i])
	{
		if(y[i]==fa)continue;
		f[y[i]]=f[x]+n-2*sz[y[i]];dfs2(y[i],x);
	}
}
int main()
{
	scanf("%d",&n);int a,b;
	for(int i=1;i<n;i++){scanf("%d%d",&a,&b);lian(a,b);lian(b,a);}
	dfs1(1,0);dfs2(1,0);
	for(int i=1;i<=n;i++)if(maxx<f[i]){maxx=f[i];ans=i;}
	printf("%d",ans);
}

又双叒叕因为数组大小的问题爆了好几发,真离谱啊
发现自己根本跟不上刷题,又怕明天还跟不上,就赶紧去预习了,毕竟什么时候都能补题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值