<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[弱智就要多努力]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/discreeter</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; discreeter]]></copyright><item><title><![CDATA[一切都结束了]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78477511</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78477511</guid><author>discreeter</author><pubDate>Wed, 08 Nov 2017 13:15:35 +0800</pubDate><description><![CDATA[2017有幸参加了三场区域赛，icpc沈阳，ccpc秦皇岛，icpc青岛，期间轮流组队，共有五位队友，最终成绩是两铜一铁，沈阳打了铁，另外两场铜。 
关于沈阳打铁，我们由于罚时过高，离奖牌差了几名，总结了一下，主要原因是当时我们队由于卡题心态爆炸，无法冷静，导致了不应该的罚时，很遗憾。 
秦皇岛ccpc，好像没什么好说的，中规中矩，靠队友带飞拿铜。 
青岛的话，大家都知道2017年青岛赛区的题比较坑]]></description><category></category></item><item><title><![CDATA[可持久化字典树]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78270037</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78270037</guid><author>discreeter</author><pubDate>Wed, 18 Oct 2017 10:26:29 +0800</pubDate><description><![CDATA[普通模板：//给出一个长度为N的正整数数组A，再给出Q个查询，每个查询包括3个数，L, R, X (L <= R)。求A[L] 至 A[R] 这R - L + 1个数中，与X 进行异或运算(Xor)，得到的最大值是多少？ 
const int N = 50000 + 10;
int son[N*35][2], sum[N*35];
int root[N];
int tot;
int len = 31]]></description><category></category></item><item><title><![CDATA[扩展kmp]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78266221</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78266221</guid><author>discreeter</author><pubDate>Tue, 17 Oct 2017 20:56:27 +0800</pubDate><description><![CDATA[给出两个字符串s1,s2，求出s2的每一个后缀在s1中出现的次数乘以这个后缀的长度，并累加求和，输出这个和//next[i]表示pat与pat[i,len-1]的最长公共前缀
//extend[i]表示pat与ori[i,len-1]的最长公共前缀
typedef long long ll;
const int N = 1000000 + 10, mod = 1e9 + 7;
char ori[N]]]></description><category></category></item><item><title><![CDATA[hdu 5988 Coding Contest 费用流]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78252749</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78252749</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 18:31:58 +0800</pubDate><description><![CDATA[题目：http://acm.split.hdu.edu.cn/showproblem.php?pid=5988题意：有n个区域，有m条有向边连接它们，每条边都有一个被破环的几率，但第一个人通过不会造成任何影响，之后的人通过才会有影响。现在每个区域内有一定的队员和背包，要求每个队员都拿到一个背包，且使道路奔溃的几率最小，求这个最小几率思路：被破坏的几率最小就是不被破坏的几率最大。可以用费用流去做，因为]]></description><category></category></item><item><title><![CDATA[hdu 6024 Building Shops dp]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78250949</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78250949</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 16:14:59 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=6024题意：有n间教室，要选一些建商店，对于每间教室，如果选中在这间教室建商店，会给出一个花费，如果没有选中，那么也有一个花费，就是这间教室到左边最近的商店的距离。要求当一间教室没有建设商店时，那么它左边一定有一个商店。求最小花费思路：根据题意，第一间教室一定要建商店。定义dp[0][i]为第i间教室不建商店]]></description><category></category></item><item><title><![CDATA[hdu 6031 Innumerable Ancestors lca + 二分]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78250778</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78250778</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 16:04:04 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=6031题意：给定一个无向树形图，1为根，对于每次查询，给出两个集合，问两个集合中各选出一个点的最近公共祖先的深度最深为多少思路：用倍增求lca，然后二分枚举答案，求出第一个集合中的点在枚举的深度上的祖先，并标记这些祖先，然后求第二个集合中的点在枚举的深度上的祖先，检查两个集合在枚举深度上的祖先有没有重合，有重]]></description><category></category></item><item><title><![CDATA[hdu 6029 Graph Theory 思维]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78250099</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78250099</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 15:17:32 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=6029题意：有n个点，有下面两种操作
从当前点向前面所有点连一条边
从当前点不向任何点连边
问构成的图是不是一个二分图思路：奇数肯定不能构成二分图，偶数的话，我们依次判断，记录没有配对的点数，当操作1时，查看是否有没有配对的点，有的话，把当前点和某个未配对的点配对，那么未配对点数减1，没有的话，当前点就是一个]]></description><category></category></item><item><title><![CDATA[hdu 6162 Ch’s gift 树链剖分 + 离线查询]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78249842</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78249842</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 14:59:46 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=6162题意：给定一个树形图，有点权，每次一个查询，问从点vv到uu路径上点权在[a,b][a,b]之内的和思路：直接查询好像好像不太行。把每个询问拆成两个：求路径上点权在[0,a−1][0,a-1]内的和sum1sum_1与点权在[0,b][0,b]的和sum2sum_2，那么sum2−sum1sum_2-s]]></description><category></category></item><item><title><![CDATA[hdu 6178 Monkeys 贪心]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78249718</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78249718</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 14:50:53 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=6178题意：有一个树形图，有n个节点，每个节点只能呆一只猴子，现在有k只猴子，要求删掉一些边，在剩余的图中，把这些猴子放置在点上，要求任意一只猴子至少能沿着边访问到另外一只猴子。问最少还剩多少条边思路：可以发现，最少的剩余方式按两个点一条边这样的方式配对。可以用贪心的思想，首先从叶子节点开始配对，求出能配对的]]></description><category></category></item><item><title><![CDATA[hdu 6180 Schedule 贪心]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78249270</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78249270</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 14:22:08 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=6180题意：有n个任务，每个任务有一个开始时间s_i和结束时间e_i，在一些机器上执行任务，每个机器在一段时间间隔内只能执行一个任务，也就是允许时间点是重合的，在一个机器上执行的两个任务之间有段空闲时间的话，机器不能关闭。求最少需要多少台机器，然后求出在这些机器下执行完所以任务需要的最少时间思路：贪心选取，使]]></description><category></category></item><item><title><![CDATA[hdu 6198 number number number]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78249143</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78249143</guid><author>discreeter</author><pubDate>Mon, 16 Oct 2017 14:11:18 +0800</pubDate><description><![CDATA[题目：http://acm.hdu.edu.cn/showproblem.php?pid=6198题意：如果一个数字nn可以等于kk个斐波那契数的和（这些斐波那契数可以相等），那么nn就称为mif−goodmif-good，否则就是mif−badmif-bad，当给定kk时，求最小mif−badmif-bad数字思路：可以推出规律，当k=1k=1时，答案为44，当k=2k=2时，可以发现，当首次遇到]]></description><category></category></item><item><title><![CDATA[逆元模板]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78193418</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78193418</guid><author>discreeter</author><pubDate>Tue, 10 Oct 2017 15:43:02 +0800</pubDate><description><![CDATA[扩展欧几里得求逆元：int extgcd(int a, int b, int &x, int &y)
{
    int d = a;
    if(b != 0)
    {
        d = extgcd(b, a%b, y, x);
        y -= (a / b) * x;
    }
    else x = 1, y = 0;
    return d;
}
int mod]]></description><category></category></item><item><title><![CDATA[欧几里得与扩展欧几里得]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78192246</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78192246</guid><author>discreeter</author><pubDate>Tue, 10 Oct 2017 14:23:43 +0800</pubDate><description><![CDATA[欧几里得：int gcd(int a, int b)
{
    return !b ? a : gcd(b, a%b);
}
int lcm(int a, int b)//最小公倍数
{
    return a / gcd(a, b) * b;//先除后乘避免溢出
}扩展欧几里得：存在整数对(x,y)(x,y)使得ax+by=gcd(a,b)ax+by=gcd(a,b) 
推导过程： 
用递归求]]></description><category></category></item><item><title><![CDATA[CodeForces 785E Anton and Permutation 分块]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78186112</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78186112</guid><author>discreeter</author><pubDate>Mon, 09 Oct 2017 19:57:43 +0800</pubDate><description><![CDATA[题目：https://vjudge.net/problem/CodeForces-785E题意：给定一个初始为1到n1到n的长度为nn的序列，有mm个操作，每次互换两个数的位置，问每次操作后逆序数有多少对思路：分块。交换x yx\ y，只会影响[x+1,y−1][x+1,y-1]内的元素，然后就可以统计了#include <bits/stdc++.h>
using namespace std;typ]]></description><category></category></item><item><title><![CDATA[codeforces 551E GukiZ and GukiZiana 分块]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78184803</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78184803</guid><author>discreeter</author><pubDate>Mon, 09 Oct 2017 17:28:15 +0800</pubDate><description><![CDATA[题目：https://vjudge.net/problem/CodeForces-551E题意：给定一个长度为n的序列a，有两种操作：
1 l r x:1\ l\ r\ x:把区间[l,r][l,r]内的元素都加上xx
2 y:2\ y:查询整个序列中值为yy的元素的最远距离，若没有yy输出−1-1
思路：分块，注意爆int#include <bits/stdc++.h>
using namespa]]></description><category></category></item><item><title><![CDATA[uva12003 Array Transformer 分块]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78183352</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78183352</guid><author>discreeter</author><pubDate>Mon, 09 Oct 2017 15:48:48 +0800</pubDate><description><![CDATA[题目：https://vjudge.net/problem/UVA-12003题意：给出一个长度为nn的序列aa，有mm次操作，每次操作(L,R,v,p)(L,R,v,p)，首先找出[L,R][L,R]内严格小于vv的元素个数kk，然后把a[p]a[p]更新为u∗k/(R−L+1)u ∗ k/(R − L + 1)。输出最终的序列思路：无脑分块#include <bits/stdc++.h>usin]]></description><category></category></item><item><title><![CDATA[bzoj2957 楼房重建 分块 || 线段树]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78182988</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78182988</guid><author>discreeter</author><pubDate>Mon, 09 Oct 2017 15:22:16 +0800</pubDate><description><![CDATA[题目：http://www.lydsy.com/JudgeOnline/problem.php?id=2957题意：Description　　小A的楼房外有一大片施工工地，工地上有N栋待建的楼房。每天，这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆，数自己能够看到多少栋房子。 
　　为了简化问题，我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置，第i栋楼房可以用一条]]></description><category></category></item><item><title><![CDATA[暂存]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78175152</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78175152</guid><author>discreeter</author><pubDate>Sun, 08 Oct 2017 15:18:03 +0800</pubDate><description><![CDATA[约瑟夫环#include <bits/stdc++.h>
using namespace std;const int N = 1000 + 10;int main()
{
    int n, k;
    scanf("%d%d", &n, &k);
    int ans = 0;
    for(int i = 2; i <= n; i++) ans = (ans + k) % i;]]></description><category></category></item><item><title><![CDATA[一些大数模板]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78169675</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78169675</guid><author>discreeter</author><pubDate>Sat, 07 Oct 2017 15:05:16 +0800</pubDate><description><![CDATA[//计算两个大整数的和，要求非负整数
void add(char *s, char *s1, char *s2)
{//s储存结果，s1、s2是两个加数
    int len1 = strlen(s1), len2 = strlen(s2);
    reverse(s1, s1 + len1);
    reverse(s2, s2 + len2);
    int t = 0;
    for]]></description><category></category></item><item><title><![CDATA[51nod 1097 拼成最小的数 思维]]></title><link>https://blog.youkuaiyun.com/discreeter/article/details/78169289</link><guid>https://blog.youkuaiyun.com/discreeter/article/details/78169289</guid><author>discreeter</author><pubDate>Sat, 07 Oct 2017 13:52:36 +0800</pubDate><description><![CDATA[题目：http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1097题意：设有n个正整数，将它们联接成一排，组成一个最小的多位整数。例如： 
n=2时，2个整数32，321连接成的最小整数为：32132， 
n=4时，4个整数55，31，312, 33 联接成的最小整数为：312313355 
Input 
第1行：1个数N。(2]]></description><category></category></item></channel></rss>