<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jerans的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jerans</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jerans]]></copyright><item><title><![CDATA[leetcoder 19. Remove Nth Node From End of List]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/88133967</link><guid>https://blog.youkuaiyun.com/jerans/article/details/88133967</guid><author>jerans</author><pubDate>Mon, 04 Mar 2019 19:36:27 +0800</pubDate><description><![CDATA[https://leetcode.com/problems/remove-nth-node-from-end-of-list/

删掉链表的倒数第n个节点

想着什么空间换时间 记录什么的。。。真的很蠢。。。。

代码一看便懂


/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *   ...]]></description><category></category></item><item><title><![CDATA[leetcode 15 3sum     16 3sumclosest]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/87948702</link><guid>https://blog.youkuaiyun.com/jerans/article/details/87948702</guid><author>jerans</author><pubDate>Tue, 26 Feb 2019 20:46:43 +0800</pubDate><description><![CDATA[https://leetcode.com/problems/3sum/

2sum：找到一组两元组，使得和为某个数

先排序，假设从小到大排序后，设头尾两个指针，若当前指针指向元素和小于零 则移动指针增大元素，反之大于零 则减小元素

3sum：找所有的三元组，使得三者和为零

n^2做法 先排序，固定一个点，将问题转化为2sum问题


class Solution {
public:
   ...]]></description><category></category></item><item><title><![CDATA[leetcoder 11. Container With Most Water]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/87896556</link><guid>https://blog.youkuaiyun.com/jerans/article/details/87896556</guid><author>jerans</author><pubDate>Sat, 23 Feb 2019 20:20:05 +0800</pubDate><description><![CDATA[leetcode.com/problems/container-with-most-water/

左右两点向内缩，当左端点（le）值小于右端点（ri）值时，移动左端点，因为对于当前 le，不存在一个比 ri 靠左的端点可以得到更优的结果。


class Solution {
public:
    int maxArea(vector&amp;lt;int&amp;gt;&amp;amp; height) {
   ...]]></description><category></category></item><item><title><![CDATA[贝壳找房户外拓展（中等） 扫描线]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/80613869</link><guid>https://blog.youkuaiyun.com/jerans/article/details/80613869</guid><author>jerans</author><pubDate>Thu, 07 Jun 2018 19:14:21 +0800</pubDate><description><![CDATA[https://nanti.jisuanke.com/t/27118在线段树上写了矩阵乘法，其实只是2*2的矩阵，手写转移似乎更好。#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int mo = 323232323;
const int maxn = 1e5 + 100;
struct I_node{
	int p, q, x, ...]]></description><category></category></item><item><title><![CDATA[蓝桥杯训练4.18]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79996153</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79996153</guid><author>jerans</author><pubDate>Wed, 18 Apr 2018 22:27:22 +0800</pubDate><description><![CDATA[1.好好学习#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int main(){
	int cnt = 0, ans = 0;
	vector&amp;lt;int&amp;gt;w;
	w.push_back(1);
	w.push_back(1);
	w.push_back(2);
	w.push_back(3);
	do{
		if(w[0] == 1...]]></description><category></category></item><item><title><![CDATA[CodeForces - 626E  三分]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79959037</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79959037</guid><author>jerans</author><pubDate>Mon, 16 Apr 2018 12:48:32 +0800</pubDate><description><![CDATA[题意：给n个数，从这n个数里，任意选一些数，使得这些数的平均值减去中位数尽可能的大精度卡的好恶心啊。。。。。首先发现集合个数一定是奇数，任何一个个数为偶数的集合，都可以通过去掉中间较大的那个数，来增大或不变这个值如1 2 3 4 可以去掉3变成1 2 4排序后，枚举每个数做中位数，然后三分集合个数确定中位数之后，剩下的数肯定是越大越好，会发现这个值并不是随着集合个数单调变化的，所以要三分求凸点。直...]]></description><category></category></item><item><title><![CDATA[Mod problem FZU - 2108 栈模拟]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79945380</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79945380</guid><author>jerans</author><pubDate>Sat, 14 Apr 2018 23:01:31 +0800</pubDate><description><![CDATA[题意：定义了一种数值表示方式，给出这种表示方式下的表示，求原数值，模拟。由于重复的次数都是个位数，最多也就是重复10000次，所以可以模拟这个重复的过程输出取模后的结果，那就每一步都取模就行了，重复之后会有一个和前面的值合并的问题发现用栈更好实现这个过程开始写的时候感觉码量会很大，动手写会发现其实还好#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;iostream&amp;gt;
...]]></description><category></category></item><item><title><![CDATA[FZU 2105 Digits Count 线段树]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79935645</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79935645</guid><author>jerans</author><pubDate>Fri, 13 Apr 2018 22:59:50 +0800</pubDate><description><![CDATA[题目：点击打开链接题意：n个数字，四种操作， 区间AND OR XOR 一个数， 区间求和数字范围很小，所以可以按位去操作，区间AND和区间OR其实就可以理解为区间置0或置1，XOR为区间取反，AND和OR是可以一起操作的，但结合XOR，如果用一个lazy标记是不可行的，所以开两个lazy标记，一个是有没有区间置数，第二个是有没有区间取反。区间置数：无论有没有取反标记，都应该置为相应数，并且要把取...]]></description><category></category></item><item><title><![CDATA[HDU - 5361]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79935529</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79935529</guid><author>jerans</author><pubDate>Fri, 13 Apr 2018 22:45:26 +0800</pubDate><description><![CDATA[题意：n个点，可以在点和点之间互相跳，给出在每个点跳一次的花费，以及他可以跳到的范围，求从第一个点跳到所有点的最小花费。很像单源最短路，但直接暴力肯定不行，因为是从第一个点开始跳，发现已经跳到的点一定是最小花费，后续不需要在考虑这个点，因此可以想办法优化掉，第一个想到的是双向链表，但发现维护起来并不合适，后来又想到直接用并查集就可以了，用并查集求每个点右边的第一个没去掉的点，也就是可以入队的点。去...]]></description><category></category></item><item><title><![CDATA[BZOJ 3566: [SHOI2014]概率充电器 概率dp]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79935390</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79935390</guid><author>jerans</author><pubDate>Fri, 13 Apr 2018 22:35:03 +0800</pubDate><description><![CDATA[题目：点击打开链接树形概率dp，刚开始以为每个点的概率应该是其他点对其概率贡献加和，然后WA看了题解才明白并不是，两个事件的并事件的概率应为P(a | b) = P(a) + P(b) - P(ab)独立事件 P(ab) = P(a) * P(b)举个样例31 2 501 3 500 1 1并不能认为1充电的概率是1的求概率的时候把直接加换成上式就可以了#include&amp;lt;bits/stdc+...]]></description><category></category></item><item><title><![CDATA[ZOJ - 2770  差分约束]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79935348</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79935348</guid><author>jerans</author><pubDate>Fri, 13 Apr 2018 22:21:53 +0800</pubDate><description><![CDATA[题意：n个军营，给出每个军营的最大人数，m个估计，表示一段区间内的军营的最少人数和，现在让你求所有军营的最小可能人数和利用前缀和构造不等式关系，形成差分约束系统，其实就是跑一遍最短路就可以了#include&amp;lt;bits/stdc++.h&amp;gt;
#define inf  0x3f3f3f3f3f3f3f3f
using namespace std;
const int maxn = 2000;...]]></description><category></category></item><item><title><![CDATA[HDU - 6031 Innumerable Ancestors]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79862383</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79862383</guid><author>jerans</author><pubDate>Mon, 09 Apr 2018 10:47:01 +0800</pubDate><description><![CDATA[题意：给一棵树，m次查询， 每次查询给两个集合， 从这两个集合里分别选一个结点，使得这两个节点的lca的深度最大。考虑dfs序为5，6，7的三个节点，5，6的lca深度一定大于等于5，7的lca深度所以可以讲查询集合按dfs序排序，然后类似尺取的操作，使得每一对dfs序接近的节点都做一次lca，选一个最深的就可以了#include&amp;lt;bits/stdc++.h&amp;gt;
using namesp...]]></description><category></category></item><item><title><![CDATA[CodeForces - 618D  Hamiltonian Spanning Tree  思维]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/79750348</link><guid>https://blog.youkuaiyun.com/jerans/article/details/79750348</guid><author>jerans</author><pubDate>Thu, 29 Mar 2018 22:45:14 +0800</pubDate><description><![CDATA[题目：点击打开链接题意：n个点的无向完全图，所有边权都是y，给出一个生成树，并把生成树上的n-1条边边权改为x，求这个图的最小边权和的欧拉通路，只输出最小边权和x &amp;gt; y 时应尽量使用生成树上的边，每个点只能经过一次，相当于一个链状结构，问题等于去掉最少的边使得树变成多条链然后就不会了55555看了题解才会，太强了，短短10行代码。。。。。 贪心策略：每个点都尽可能的和子节点构成链状结构，从...]]></description><category></category></item><item><title><![CDATA[Codeforces Round #447 (Div. 2) B C 思维]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/78786455</link><guid>https://blog.youkuaiyun.com/jerans/article/details/78786455</guid><author>jerans</author><pubDate>Tue, 12 Dec 2017 21:52:47 +0800</pubDate><description><![CDATA[好久没打cf。。感觉智商已经退化到了零点，随便找了一套div2补一补。。。。B题就卡住了
http://codeforces.com/contest/894/problem/B

B题意是给一个n*m的方格，往每个格子里填1或-1，有多少种填的方法使得每行每列乘积都等于k，k已知，-1或1
n，m范围很大
第一想法，推组合数？？？？？？
感觉毫无头绪。。。
纸上画画，发现当（n+m）]]></description><category></category></item><item><title><![CDATA[LightOJ - 1258 Making Huge Palindromes KMP]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/78525438</link><guid>https://blog.youkuaiyun.com/jerans/article/details/78525438</guid><author>jerans</author><pubDate>Mon, 13 Nov 2017 22:12:38 +0800</pubDate><description><![CDATA[https://vjudge.net/problem/26968/origin
题意：给一个串，问最少添加一个任意字符可以使其变成一个回文串
思路是拓展KMP，将串反过来匹配，利用extend数组，第一个可以拓展到有重叠部分的下标之前的就是要添加的
#include
#include
#include
#include
using namespace std;
const int maxn=]]></description><category></category></item><item><title><![CDATA[hihocoder1426||UVALive - 7672  What a Ridiculous Election]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/78509172</link><guid>https://blog.youkuaiyun.com/jerans/article/details/78509172</guid><author>jerans</author><pubDate>Sat, 11 Nov 2017 22:24:42 +0800</pubDate><description><![CDATA[https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5694
16北京现场赛题目
题意：
每次有三种可行操作
1:交换相邻两个数位
2:把某一个数位加1,取模10
3:把某一个数位乘2,取模10
2操作最多能用3次，3操作最多能用2]]></description><category></category></item><item><title><![CDATA[hdu 5175 思维]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/78494264</link><guid>https://blog.youkuaiyun.com/jerans/article/details/78494264</guid><author>jerans</author><pubDate>Thu, 09 Nov 2017 21:29:49 +0800</pubDate><description><![CDATA[http://acm.hdu.edu.cn/showproblem.php?pid=5175
给一个大数n，1e10的范围
求1~n里有多少个数m满足gcd(m,n)==m^n（异或）




好思路。。看的题解。。
设m=n^x
原式子变为gcd(n^x,n)==x
那么x一定是n的因子，所以直接根n枚举n的因子即可
#include
using namespace std]]></description><category></category></item><item><title><![CDATA[hdu 5414 CRB and String||QDUOJ  GZS and String]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/78483639</link><guid>https://blog.youkuaiyun.com/jerans/article/details/78483639</guid><author>jerans</author><pubDate>Wed, 08 Nov 2017 21:46:32 +0800</pubDate><description><![CDATA[https://www.qduoj.com/problem/6/


题意是给两个字符串s,t，每次操作是在s的某个字符c后面添加一个字符d，但要求d！=c，问能不能经过某些操作后使构造出t串
贪心
几个感觉比较好的样例
aaaba
aaaaba
No

aaaba
aaabbba
Yes

baa
baa
Yes

abb
abb
Yes
cat
ca]]></description><category></category></item><item><title><![CDATA[C. Naming Company  贪心]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/78323579</link><guid>https://blog.youkuaiyun.com/jerans/article/details/78323579</guid><author>jerans</author><pubDate>Mon, 23 Oct 2017 21:24:40 +0800</pubDate><description><![CDATA[http://codeforces.com/contest/794/problem/C
题意：两个人每个人有一个长度n的字符集合，构造一个长度为n的字符串
A是希望字符串字典序越小越好，B希望字符串字典序越大越好
贪心，首先可以明确A，B都有一个必选集合，A要选（n+1）/2个，必会选自己有的最小的前几个，B必选自己有的最大的前几个
如果A当前能选的最小的小于B当前能选的最大的，那么必定是]]></description><category></category></item><item><title><![CDATA[hdu 5963 博弈]]></title><link>https://blog.youkuaiyun.com/jerans/article/details/78259097</link><guid>https://blog.youkuaiyun.com/jerans/article/details/78259097</guid><author>jerans</author><pubDate>Tue, 17 Oct 2017 12:29:53 +0800</pubDate><description><![CDATA[http://acm.split.hdu.edu.cn/showproblem.php?pid=5963
题意：中文题
博弈，找了下规律，瞎几把写了个N*M的dfs，T了，没想到能过小数据。。。。
看了下题解，大多是找规律，其实仔细想想，好像很对
修改暴力修改就好了
查询：对每个查询只看这个点直接相连的边里有几个为1的，奇数个则Girl Win ,偶数个Boy Win
仔细分析一下，单]]></description><category></category></item></channel></rss>