摘要: C、Emergency Evacuation 题意:通过样例也能看懂题.jpg,问所有人都出去的时间 正方向顺序考虑不太能够处理,考虑所有人都走出去后再往回退(假设倒着回去相同时间也会阻塞)。把时间降序排列,相同走出时间的人会产生冲突,此时会让等待时间++。 那么让等待时间为wait 遍历不升的时间 阅读全文
posted @ 2020-10-16 22:27 Lecoww 阅读(64) 评论(0) 推荐(0) 编辑
摘要: ①P2831 愤怒的小鸟 涉及到计算几何的(其实是数学)的搜索,做法可以搜索或者状压,但我都不会QAQ 搜索时首先考虑是否能与之前生成的二次曲线相交,若可以则直接往下搜 否则考虑与之前的孤立点建立曲线,删除孤立点后继续搜索(记得回溯) 最后在将该点加入孤立点,供后续的点用于构造曲线,然后再搜索 #i 阅读全文
posted @ 2020-10-04 21:47 Lecoww 阅读(66) 评论(0) 推荐(0) 编辑
摘要: #D - Ball in a Rectangle 题意:小球初始位置在(x,y),半径为r,以与水平正方向夹角α的初始速度v开始运动,在矩形边框内进行弹性碰撞,问s秒后小球球心位置在哪。 主要做法:浮点数取模。 做法概括:假设最初在(x,y),由于速度分解后属于弹性碰撞,那么对于每一维单独计算路程, 阅读全文
posted @ 2020-09-21 20:28 Lecoww 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一句话题解: 先把相等的点缩小成一个点(并入一个集合),然后在通过大小关系处理剩余点(集合)之间的关系(拓扑排序) #include<bits/stdc++.h> using namespace std; #define ll long long #define fastio ios::sync_w 阅读全文
posted @ 2020-09-08 11:46 Lecoww 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 20行写完极其害怕 只能跑1e5的数据,那个1e6强制在线的开o2只有20pts QAQ 不用reserve也可以过,不过开了之后200ms的点只要130-140ms #include<bits/stdc++.h> using namespace std; #define ll long long 阅读全文
posted @ 2020-09-03 20:28 Lecoww 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 你甚至可以只开一维(划掉) #include<bits/stdc++.h> #include<unordered_map> using namespace std; #define ll long long #define Ls t[p << 1] #define Rs t[p << 1 | 1] 阅读全文
posted @ 2020-08-21 20:05 Lecoww 阅读(103) 评论(1) 推荐(0) 编辑
摘要: 模拟不想写,其他题目手残导致“爆零“” https://ac.nowcoder.com/acm/contest/127 #小小粉刷匠 状态设计:假设将一个区间刷完最多需要x次(一个一个刷),当$a[i]==a[j]$时,这样在决策当前区间的时候一次将整个区间刷成"\(a[i]\)"后,这时次数相对于 阅读全文
posted @ 2020-08-18 21:47 Lecoww 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 本以为只是不会线段树,写完之后发现二分也不会 问题出在几个地方: 一、 这个是正确复杂度的查询 int query(int x, int y, int p) { int l = t[p].l, r = t[p].r; if (!x)return 0; if (x <= l && r <= y)ret 阅读全文
posted @ 2020-08-18 10:10 Lecoww 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 开始本来以为可以直接贪心的。。。最后还是得dp统计答案 ①把大于m和小于等于m的分成2组降序求前缀和,小于等于m的size为cnt,大于的为tot ②将i从0枚举到cnt,指选择i个小于等于m的数(从大到小贪心),剩下n-i个数,再从其中选择(n-i+d)/(d+1)个禁言单元(每一次禁言消耗d+1 阅读全文
posted @ 2020-08-14 10:43 Lecoww 阅读(99) 评论(0) 推荐(0) 编辑
摘要: #C-Decrement on the Tree 统计每个点连接边的边权和以及最大边权,然后进行如下贪心: ll find(ll x)//将边权存到了multiset<ll>s[x] { ll Max = *(--s[x].end());//x节点连的最大边 if (Max >= sum[x] - 阅读全文
posted @ 2020-08-12 20:15 Lecoww 阅读(58) 评论(0) 推荐(0) 编辑