<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LsFlyt的博客]]></title><description><![CDATA[弱鸡一只]]></description><link>https://blog.youkuaiyun.com/LsFlyt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LsFlyt]]></copyright><item><title><![CDATA[codeforces 667A 667B]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/53466101</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/53466101</guid><author>LsFlyt</author><pubDate>Mon, 05 Dec 2016 15:49:21 +0800</pubDate><description><![CDATA[codeforces 667A 667B俩水题，反正cf的A和B都随便做就行了 
A题说有一杯水告诉喝的速度和下雨的速度(smg)，然后求能不能喝完以及喝完的时间。注意单位和给出的数据就好了 
B题求给出一些木棍，求加上一根木棍使所有的木棍组成一个凸包。就看下除了长度最大的木棍和其余木棍的总长度的关系就ok。]]></description><category></category></item><item><title><![CDATA[codeforces 678F]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/53440238</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/53440238</guid><author>LsFlyt</author><pubDate>Fri, 02 Dec 2016 23:06:04 +0800</pubDate><description><![CDATA[codeforces 678F有三种操作 
1.将点(x,y)加入集合 
2.删掉第i次操作加入的点 
3.给一个数q，求x*q+y的最大值，如果当前集合为空输出”EMPTY SET”并不会动态维护凸包，据说是用平衡树啥的。。。 
换个角度想，对于每一个点都有一个存在区间[l,r]，所以我们可以搞一个线段树出来，将每个点标记到线段中，然后对于每一个线段都维护一个上凸壳，然后三分求答案。 
因为对于每]]></description><category></category></item><item><title><![CDATA[dinic算法的改进]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/53425787</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/53425787</guid><author>LsFlyt</author><pubDate>Thu, 01 Dec 2016 19:45:40 +0800</pubDate><description><![CDATA[dinic算法的改进保存邻接表是使用的是head数组,现在另设一个head2数组，存储的是每个节点x从head2[x]开始的边才会有增广路，这样减少了无用边的循环。并且head2数组只在全局初始化一次，即如果没有增广，该值只会逐渐减小直到0。 
在HDU3572中使用该优化可使时间从998ms优化值156ms附上代码/*注释的地方是与平常dinic不同的地方，注意即可
*/
#include<cst]]></description><category></category></item><item><title><![CDATA[codeforces 718 C.Sasha and Array]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/52671397</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/52671397</guid><author>LsFlyt</author><pubDate>Mon, 26 Sep 2016 16:27:17 +0800</pubDate><description><![CDATA[codeforces 718 C.Sasha and Array标签（空格分隔）： 复数运算 Fibonacci给你一个1~n的数列，每个数代表了是Fibonacci数列的第几项（f[0]=0），两种操作： 
    1：l~r区间加上一个数 
    2：求区间代表的Fibonacci数的和似乎很难的样子。。。看上去肯定是线段树，有一种做法是对于每一个区间维护一个矩阵，常数会比较大，再加上lsh写]]></description><category></category></item><item><title><![CDATA[Gym 100015A Another Rock-Paper-Scissors Problem]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50935904</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50935904</guid><author>LsFlyt</author><pubDate>Sun, 20 Mar 2016 11:58:32 +0800</pubDate><description><![CDATA[传送门：http://codeforces.com/gym/100015/attachments


已知一个石头剪刀布的串S
初始是P
每次构造串S‘打败S，以及S’‘打败S’
以此类推
求第n个元素是什么


只要找到是哪个转移来的就行
让x减去不大于x的最大的3的幂


代码如下：
#include

using namespace std;

	long lo]]></description><category></category></item><item><title><![CDATA[Gym 100015B Ball Painting]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50935525</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50935525</guid><author>LsFlyt</author><pubDate>Sun, 20 Mar 2016 10:43:03 +0800</pubDate><description><![CDATA[传送门：http://codeforces.com/gym/100015/attachments


已知一个2*n的网格，按要求染色，第一个可以随便染，之后的必须和已经染色的相邻，斜着也算相邻，求染色方案数%1000000007


还是dp
f[i][j]表示i行j个，显然i
然后f[i][j]从两个状态转移，一个是另开一行，有四个位置可以染色 f[i][j]+=f[i-1][]]></description><category></category></item><item><title><![CDATA[CodeForces 618C Constellation]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50924310</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50924310</guid><author>LsFlyt</author><pubDate>Fri, 18 Mar 2016 15:58:20 +0800</pubDate><description><![CDATA[传送门：http://codeforces.com/problemset/problem/618/C



已知若干的点的坐标，并且没有两个点坐标相同，所有点不会均在一条线上，求三个顶点构成的任意一个三角形，是其余的点都严格在三角形外。


水题。。。结果因为数据范围WA了
A1：按极角排序，所以第一个点，第二个点，和之后第一个不共线的点就是答案，因为数据范围，所以算叉乘的时候要用]]></description><category></category></item><item><title><![CDATA[poj 1671 Rhyme Schemes]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50758810</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50758810</guid><author>LsFlyt</author><pubDate>Sun, 28 Feb 2016 09:16:18 +0800</pubDate><description><![CDATA[传送门：http://poj.org/problem?id=1671]]></description><category></category></item><item><title><![CDATA[POJ 1636 Prison rearrangement]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50758754</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50758754</guid><author>LsFlyt</author><pubDate>Sun, 28 Feb 2016 08:45:19 +0800</pubDate><description><![CDATA[传送门：http://poj.org/problem?id=1636


有两个监狱，两个监狱之间的人有的不能在一起，否则会摔♂跤。现在要交换两个监狱中的某些人，使两边人数依然相同，求最多交换的人数(ans=n/2)


我们需要求的是如何在两边选出相同的人数，对于不能在一起的人，必须同时移动，所以可以按给定的关系建边，连通的人要同时移动。此时每一组人，左边的人数为a[i]，
右边的]]></description><category></category></item><item><title><![CDATA[SGU 104 Little shop of flowers]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50758753</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50758753</guid><author>LsFlyt</author><pubDate>Sun, 28 Feb 2016 08:44:42 +0800</pubDate><description><![CDATA[传送门：http://acm.sgu.ru/problem.php?contest=0&problem=104]]></description><category></category></item><item><title><![CDATA[HDU 2577 How to Type]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50758752</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50758752</guid><author>LsFlyt</author><pubDate>Sun, 28 Feb 2016 08:44:05 +0800</pubDate><description><![CDATA[传送门：http://acm.hdu.edu.cn/showproblem.php?pid=2577]]></description><category></category></item><item><title><![CDATA[ZOJ 3844	Easy Task]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50758750</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50758750</guid><author>LsFlyt</author><pubDate>Sun, 28 Feb 2016 08:43:31 +0800</pubDate><description><![CDATA[传送门：http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3844]]></description><category></category></item><item><title><![CDATA[ZOJ 3870 Team Formation]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50758749</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50758749</guid><author>LsFlyt</author><pubDate>Sun, 28 Feb 2016 08:43:00 +0800</pubDate><description><![CDATA[传送门：http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3870]]></description><category></category></item><item><title><![CDATA[CodeForces 520E Pluses everywhere]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50724789</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50724789</guid><author>LsFlyt</author><pubDate>Tue, 23 Feb 2016 17:32:10 +0800</pubDate><description><![CDATA[传送门：http://codeforces.com/problemset/problem/520/E


有一串n个数，在n个数中插入k个加号，拆成k+1个数，求着n*(k+1)的数的和是多少


当然，暴力枚举是不可以的hhh，所以要考虑别的思路
对于一个数12345相当于1*10^4+2*10^3+3*10^1+4*10^0
所以只要考虑每一个数在每一位上的次数
从低到高分别]]></description><category></category></item><item><title><![CDATA[UVA 11134 Fabled Rooks]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50719489</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50719489</guid><author>LsFlyt</author><pubDate>Mon, 22 Feb 2016 22:39:05 +0800</pubDate><description><![CDATA[传送门：https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2075


已知n*n的棋盘上放置n个车，使得每个车不互相攻击，每个车只能放在某个矩形内
输出一种方案，如果无解输出“IMPOSSIBLE”


对于x，y轴可分开考虑，问题转化为在1]]></description><category></category></item><item><title><![CDATA[HDU 5105 Math Problem]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50719471</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50719471</guid><author>LsFlyt</author><pubDate>Mon, 22 Feb 2016 22:34:17 +0800</pubDate><description><![CDATA[传送门：http://acm.hdu.edu.cn/showproblem.php?pid=5105


给一个三次函数以及一个区间，求在该区间上三次函数的绝对值最大是多少


最简单的情况a=0且b=0，则直接求两端点值并比较
a=0而b!=0时，求两端点值，并且求导。。。
a!=0是求导。。。没了
反正就是高中数学的知识啦啦啦


代码如下：
#include
#in]]></description><category></category></item><item><title><![CDATA[CodeForces 227A Where do I Turn?]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50719455</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50719455</guid><author>LsFlyt</author><pubDate>Mon, 22 Feb 2016 22:31:41 +0800</pubDate><description><![CDATA[传送门：http://codeforces.com/problemset/problem/227/A


就是给出来的点，当前的点，要去的点，判断向前还是向左还是向右
水题，叉积好了


代码如下：
#include

using namespace std;

	long long xa,ya,xb,yb,xc,yc;

int main()
{
	scanf("%I64d%I6]]></description><category></category></item><item><title><![CDATA[poj 2096 Collecting Bugs]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50719420</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50719420</guid><author>LsFlyt</author><pubDate>Mon, 22 Feb 2016 22:25:45 +0800</pubDate><description><![CDATA[传送门：http://poj.org/problem?id=2096


有n中bug，s个子程序，每种bug可视为有无限多个，每天检查一遍，求在每个程序中都找到bug，并且n种bug都找出来的期望天数


又是dp+概率
f[i][j]表示已经找出i个bug，并在j个程序中找到了bug
则求得是f[0][0]已知f[n][s]=0
则对于每一天的检查有四种结果
找到了新的bu]]></description><category></category></item><item><title><![CDATA[HDU 5115 Dire Wolf]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50719154</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50719154</guid><author>LsFlyt</author><pubDate>Mon, 22 Feb 2016 21:24:47 +0800</pubDate><description><![CDATA[传送门：http://acm.hdu.edu.cn/showproblem.php?pid=5115


森林狼嘛，2费11但是可以给相邻的随从加buff，hhh






代码如下：
#include
#include
#include

using namespace std;

	int T;
	int n;
	int a[205],b[205];
	int f[20]]></description><category></category></item><item><title><![CDATA[CodeForces 624D Array GCD]]></title><link>https://blog.youkuaiyun.com/LsFlyt/article/details/50709367</link><guid>https://blog.youkuaiyun.com/LsFlyt/article/details/50709367</guid><author>LsFlyt</author><pubDate>Sun, 21 Feb 2016 20:34:17 +0800</pubDate><description><![CDATA[传送门：http://codeforces.com/problemset/problem/624/D


题目大意：给一个序列，有两种操作
1，删掉某一个连续区间，代价为区间长度*a
2，把某些数+1或-1，代价为更改的数量*b
对于1操作只能进行一次，2操作可多次，并且不能把整个序列删除
使得序列的最大公约数大于1，求最小的代价


因为不能把整个序列删除，所以s[1]与s[]]></description><category></category></item></channel></rss>