2019-4-21 - plan】的更多相关文章

2019.3.18 C O D E T1 树上直接贪心,环上for一遍贪心 哇说的简单,码了将近一下午终于码出来了 感觉自己码力/写题策略太糟糕了,先是搞了一个细节太多的写法最后不得不弃疗了,然后第二次思路又有问题,最后重构了两遍代码 大概先是需要多想,想清楚了不要先考虑细节,果断写+调 废话结束 对于入度大于一且不在环上的点直接贪心留最大的 对于一个完美无瑕的环直接断最小的(指没有被环以外的点指着) 对于入度大于一且在环上的点,先假装它就是普通的入度大于一的点来做并记录每个点是否断了环上的边和…
传送门 数据结构优化计数菜题. 题意简述:给nnn个点问有多少个www型. www型的定义: 由5个不同的点组成,满足x1<x2<x3<x4<x5,x3>x1>x2,x3>x5>x4x_1<x_2<x_3<x_4<x_5,x_3>x_1>x_2,x_3>x_5>x_4x1​<x2​<x3​<x4​<x5​,x3​>x1​>x2​,x3​>x5​>x4​ 思路: 本…
meet 大概思路就是 , 找出相交的路径 , 判断方向 , 分类讨论.. 假设已经找出了相交路径 ... 若方向相同 , 则找到相交路径上边权的最大值 , 若最大值>出发时间差 , 则可行. 原因: 由于方向相同所以在相交路径上这两个点的相对距离是不变的,看最大的边权即可. 这个东西用st表就可以搞定 若方向不同,就看看他们相遇的位置是不是相交路径上各个(不一定是最两头的点)边的端点之一. 因为题中说在边上才算 , 点不能算到边上. 所以不在点上就一定会在边上相遇. 然后就是怎么找相交路径了.…
开玩笑的啦,没有LFCR这种沙雕东西 为什么突然想起来写这个呢,是因为先前照着shell画llehs的时候,总报错,改正了以后又因为看不见而在上一篇博客上没有写明,所以过来好好写一写咯. 可以看出报错里面出了各种稀奇古怪的东东:无法识别#!bin/sh以及觉得每一行代码后面都多了\r 故事开始于上古时期,那个时期的人们还在用打字机帮助自己不用笔.最早的时候打字机是纯机械不用电的,按下Enter是没有办法让光标挪动到下一行的(事实上那个时候既没有Enter也没有光标啦),需要人们拉一下手柄让传动装…
本阶段我们将了解Python是如何管理内存的,学习内存管理让我们掌握python的运行机制: 并且在python中有许多函数式编程的特性,比如闭包,装饰器和生成器,这些都是一些比较难掌握的概念,但面试会经常遇到. 1.生成器与列表的对照使用 在Python中, 一边循环一边计算的机制, 称为生成器: generator 创建生成器: G = ( x*2 for x in range(5)) 可以通过 next(生成器) 函数获得生成器的下一个返回值 没有更多的元素时, 抛出 StopIterat…
前言 今天做的是是2010年提高组和NOI的题目,做过几道原题,但是还是爆炸了,我真的太弱了. t1-乌龟棋 https://www.luogu.org/problemnew/show/P1541 这道题目还是比较简单的,差不多是三年做过的题目. 简单的DP,定义状态是\(f[i][j][k][l]\)表示i个1的卡牌,j个2的卡牌,k个3的卡牌,l个4的卡牌时的最大分数. O(n^4)的暴力转移 \[f[i][j][k][l]=max(f[i-1][j][k][l]+a[tmp])\] \[f…
传送门 题意:给出一个nnn个点的轮廓,要求找一个高度最小的点使得它能够看见所有拐点. 思路:之间建半平面交然后取半平面交上的每个交点和每个轮廓更新答案即可. 代码: #include<bits/stdc++.h> #define ri register int using namespace std; typedef long long ll; const int N=305; struct pot{ double x,y; pot(double _x=0,double _y=0):x(_x…
传送门 题意:动态维护凸包周长. 思路: 见这篇求面积的吧反正都是一个套路. 代码: #include<bits/stdc++.h> #define int long long #define ri register int using namespace std; inline int read(){ int ans=0; bool f=1; char ch=getchar(); while(!isdigit(ch))f^=(ch=='-'),ch=getchar(); while(isdi…
传送门 题意:qqq次询问把一个凸包整体加一个向量(x,y)(x,y)(x,y)之后是否与另外一个凸包相交. 思路:转化一下发现只要会求A+B={v⃗=a⃗+b⃗∣a⃗∈A,b⃗∈B}A+B=\{\vec v=\vec a+\vec b|\vec a\in A,\vec b\in B\}A+B={v=a+b∣a∈A,b∈B}即可,这个要用到一个叫做MinkowskiMinkowskiMinkowski和的东西. 不会的可以画个图,发现最后的向量集组成的凸包每条边都是由A,BA,BA,B中的边拼成…
传送门 题意:动态插入点,维护凸包面积. 思路:用setsetset维护极角序来支持面积查询即可. 然后注意选原点的时候要从初始三个点随机平均系数来避免精度误差. 代码: #include<bits/stdc++.h> #define ri register ll using namespace std; typedef long long ll; inline ll read(){ ll ans=0; bool f=1; char ch=getchar(); while(!isdigit(c…