20210909上午

20210909上午

二分图,你毁了多少人的生活!
请添加图片描述

T1T2T3T4T5T6T7T8
预测100100100100100100100100
一测100100801001006750100

T1:
。。。模拟。
T2:
。。。模拟。
T3:
来回的意思是双向两条边。。。所以每个点度数一定为偶数,一定有一种方法能不重复遍历所有边,所以算出总距离乘二除 20 k m / h 20km/h 20km/h就行,精度出了点小问题。
T4:
边权为 1 1 1的最长路, b f s bfs bfs即可。
T5:
入度为0的点需要一份,没有分支的环需要一份,其余有入度的点一定能从别人那搞到,所以先跑入度为0的再跑没访问过的点就行。
T6:
考场上一眼二分图,但为啥过不了呢,怎么回事呢。
请添加图片描述
正解是直接连图向ppt,跑一遍拓扑就行,但为啥二分图过不去啊淦。
T7:
跟昨天T4一模一样,空间开小痛失50。
T8:
写了个 O ( n l o g n l o g n ) O(nlognlogn) O(nlognlogn)的瞎搞算法竟然过了,诶嘿~。
请添加图片描述
显然有贪心策略把区间按右端点排序后每次贪心取右边的数,建颗线段树维护修改信息,每次如果之前填的数够了就跳,不够就在右边填,但右边也被填的坑坑洼洼,所以后面填的位置需要一个二分,于是就把这个题乱搞出来了。

//二分
int binarysearch(int x,int s)
{
	int l=max(q[x].l,1),r=q[x].r,Mid;
	while(l<r)
	{
		Mid=(l+r+1)>>1;
		if((q[x].r-Mid+1)-t.query(1,L,R,Mid,q[x].r)>=s) l=Mid;
		else r=Mid-1;
	}
	return l;
}
//处理区间
for(int i=1;i<=n;i++)
{
	int now=t.query(1,L,R,q[i].l,q[i].r);
	if(now>=q[i].s) continue;
	t.Change(1,L,R,binarysearch(i,q[i].s-now),q[i].r,1);
}

总结:依旧是简单图论,知识点还没多大问题,乱搞是第一生产力。
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值