<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[turtlew的博客]]></title><description><![CDATA[=_=]]></description><link>https://blog.youkuaiyun.com/turtlew</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; turtlew]]></copyright><item><title><![CDATA[CF]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/83348273</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/83348273</guid><author>turtlew</author><pubDate>Wed, 24 Oct 2018 18:07:43 +0800</pubDate><description><![CDATA[510 2C
#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const int maxn=2e5+5;
const int inf=1e9+5;
int n,a[maxn],cnt;
vector&amp;lt;int&amp;gt;vec;
 
int main()
{
    cin&amp;gt;&amp;gt;n;
    for(int i=1; i&amp;lt;=n;...]]></description><category></category></item><item><title><![CDATA[CF]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/83348234</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/83348234</guid><author>turtlew</author><pubDate>Wed, 24 Oct 2018 18:04:41 +0800</pubDate><description><![CDATA[能否将给出的多元集合划分成两个集合，使得每个集合中，只出现了一次的元素的个数相等。
#include &amp;lt;bits/stdc++.h&amp;gt;
#define N 105
using namespace std;
int s[N],des[N];
char ans[N];
map&amp;lt;int,int&amp;gt; mp;
vector&amp;lt;int&amp;gt; three,one;
int main()...]]></description><category></category></item><item><title><![CDATA[CF]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/83348199</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/83348199</guid><author>turtlew</author><pubDate>Wed, 24 Oct 2018 18:02:52 +0800</pubDate><description><![CDATA[517 B
#include 
#include 
#include 
#include 
using namespace std;
int f[5][5][5];
int n,a[100006],b[100006],ans[100006];
bool check()
{
for(int i=2;i&amp;lt;=n;i++)
{
ans[i]=f[a[i]][b[i]][ans[i-1]];
if(a...]]></description><category></category></item><item><title><![CDATA[cf 517 div2A]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/83348177</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/83348177</guid><author>turtlew</author><pubDate>Wed, 24 Oct 2018 18:01:19 +0800</pubDate><description><![CDATA[#include
using namespace std;
const int N=1e5+5;
int a[N];
int b[N];
int c[N];

int n;
int f;
int main()
{cin&amp;gt;&amp;gt;n;
for(int i=1;i&amp;lt;n;i++)
cin&amp;gt;&amp;gt;a[i];
for(int i=1;i&amp;lt;n;i++)
cin&amp;gt;&amp;gt;b[i]...]]></description><category></category></item><item><title><![CDATA[泛型的限制]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/57083745</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/57083745</guid><author>turtlew</author><pubDate>Sat, 25 Feb 2017 16:17:05 +0800</pubDate><description><![CDATA[1.泛型类型参数不能创建实例 
  例如  E oE = new E();  
   java中没法得到泛型参数化类型，因为在编译期没法确定泛型参数化类型，也就找不到对应的类字节码文件2.泛型类型参数不能创建数组，泛型类不能创建数组 
    例如  
    E[] oE = new E[10]; 
    ArrayList[] list = new ArrayList[10]; 
防止破坏类型]]></description><category></category></item><item><title><![CDATA[387 div2 cf 4]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53750789</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53750789</guid><author>turtlew</author><pubDate>Tue, 20 Dec 2016 00:30:30 +0800</pubDate><description><![CDATA[C 题意: 
有n个服务器 1 ~n 
有m个任务，t代表任务开始的时间，k代表任务要占用的服务器数量，d代表占用时间。 
m<=1e5 
每个任务占用服务器时会选择使用编号最小的服务器 
输出每个任务占用的服务器编号总和，没有则-1暴力模拟就好了。=_=虽然感觉会T。。但是试着交了发struct TASK {
    int t, k, d;
} task[maxn];
set<int>S;
se]]></description><category></category></item><item><title><![CDATA[386 div2 cf 3]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53732041</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53732041</guid><author>turtlew</author><pubDate>Mon, 19 Dec 2016 00:59:21 +0800</pubDate><description><![CDATA[一行上有0-s个点，列车直走到尽头转向，人要从起点x1走到终点x2，列车速度是t1 s/m,人的速度是t2 s/m，列车在p点，d=1代表方向向右，d=-1向左模拟=_=但是模拟的太痛苦过后看到一个暴力模拟的感觉不错。。C.    cin>>s>>x1>>x2>>t1>>t2>>p>>d;
    int ans = abs(x1-x2)*t2;
    if(t1>=t2) cout<<ans<<]]></description><category></category></item><item><title><![CDATA[385 div2 cf 2]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53731484</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53731484</guid><author>turtlew</author><pubDate>Sun, 18 Dec 2016 23:41:58 +0800</pubDate><description><![CDATA[感觉什么都要练。。。就算有思路写起来都要花好长时间。。A.求循环节,n<=50 
=_=暴力我都能写这么长…心累#include <set>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <queue>
#include <stack>
#]]></description><category></category></item><item><title><![CDATA[382 Div 2    cf 1]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53700597</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53700597</guid><author>turtlew</author><pubDate>Fri, 16 Dec 2016 23:23:16 +0800</pubDate><description><![CDATA[B.贪心下,去掉最小的n - n1 - n2个，对剩下的求 
sum1/n1 + sum2/n2，（n1 > n2 &&sum1 < sum2）答案最大 
C.研究下就是斐波那契#include <set>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
#i]]></description><category></category></item><item><title><![CDATA[cf round 384 div2 E,二分 + 状压DP]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53696033</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53696033</guid><author>turtlew</author><pubDate>Fri, 16 Dec 2016 17:50:29 +0800</pubDate><description><![CDATA[题意 
给一个长度为n的序列，且每个元素在[1,8]之间， 
要求找出一个子序列满足 
1.子序列的相同元素要连续 
2.子序列每个元素出现的次数之差不超过1求出满足要求的最长的子序列长度题解： 
首先 
假设存在一个子序列满足[1,8]中有的数字出现次数是len，这样的数字有b个,剩下(8-b)个数字的出现次数是len - 1，那么这个子序列的长度是d2 = len * b + (8 - b)*(]]></description><category></category></item><item><title><![CDATA[日常补]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53582492</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53582492</guid><author>turtlew</author><pubDate>Mon, 12 Dec 2016 14:41:00 +0800</pubDate><description><![CDATA[D  维空间里有一个关于点的集合 S，集合中的点的第 i 维坐标 ai 满足 1≤ai≤di ，其中 di 是给定的正整数 ，所以 S 中总共有 ∏di 个点。定义一次空间旅行是指，从 (1,1,⋯,1) 开始进行移动，每次移动只能将某一维坐标加 1 、其他维坐标不变，从而走到下一个点，然后继续进行移动，每次移动前也可以选择结束此次旅行。问至少进行多少次空间旅行，才能将 S 中所有的点都访问至少一次]]></description><category></category></item><item><title><![CDATA[g_2 + g_3]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53577157</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53577157</guid><author>turtlew</author><pubDate>Mon, 12 Dec 2016 00:53:13 +0800</pubDate><description><![CDATA[g_2  
二分染色 + DP 
染色后的题大概就是 
先计算出n对数字的和sum 
在n对数字中从每一对中选一个数字，然后计算这n个数的和tot 
让sum-tot 和tot的差值绝对值最小 
这部分可以背包dp和另一种 
dp[i][j] = 1表示存在选了前i个数字中差异为j的情况 
然后代码中注释写了接下来的操作=_=  
注意差值为负数要修正到正数/*poj1112*/
#include]]></description><category></category></item><item><title><![CDATA[我叫标题]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53561764</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53561764</guid><author>turtlew</author><pubDate>Sat, 10 Dec 2016 22:29:58 +0800</pubDate><description><![CDATA[给定两个 n 维向量 A =(x1,x2,⋯,xn)和 B =(y1,y2,⋯,yn) ，定义它们的点积为 
A ⋅B =∑(1≤i≤n)xi⋅yi对于每个向量，它的每个分量互不相同，而且任意两个分量均可交换位置。求一种交换策略使得  A 与 B 的点积最小，如果有多种满足条件的交换策略，那么还要使得交换总次数最少。请你给出交换后  A⋅B的值及最少的交换次数。输入 
第一行包含一个正整数 T ，表]]></description><category></category></item><item><title><![CDATA[g_1]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53524996</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53524996</guid><author>turtlew</author><pubDate>Thu, 08 Dec 2016 21:28:25 +0800</pubDate><description><![CDATA[第一道：限制了路径上的两两点权差之间都要小于等于m，数据小，枚举区间即可 
第二道：传递闭包加二分图.. 
第三道：拓扑排序…有点坑//POJ 1062 dijk
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>#define  mp make_pair
#d]]></description><category></category></item><item><title><![CDATA[查询区间小于x的个数，不修改]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/53509459</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/53509459</guid><author>turtlew</author><pubDate>Wed, 07 Dec 2016 18:41:59 +0800</pubDate><description><![CDATA[题意: 
给一个长度为n(n<=1e5)的数组 
给q个询问，每个询问有l,r,x三个数 
每个询问就是查询[l,r]中有多少个<=x的数解法： 
先将原数组A排序，并保留原有的下标，排序后的数组为B数组 
然后对询问按x从小到大排序 
for询问 
对每个x暴力处理每一个小于x的B数组元素在原数组A的下标pos，用树状数组对pos+1 
这样就说明在pos这个位置有1个小于x的值再进行下区间求和就]]></description><category></category></item><item><title><![CDATA[Postcards]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/52942240</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/52942240</guid><author>turtlew</author><pubDate>Thu, 27 Oct 2016 08:38:57 +0800</pubDate><description><![CDATA[题意:从n个人（对人编号1-n）中任意选k个人发他们明信片，但是这其中会有一些关系使得给了某个人i，就必须给某个人j，问发明信片的期望值，答案*C(n,k)T个case 
每个case有n,m,k (1 <= n <= 50, m <= 10000, 0 <= k <= n) 
n代表总共有多少个人，m代表总共有多少种关系，k如题意 
接下来m行有u，v两个人，表示如果给了u就必须给v. (1 <=]]></description><category></category></item><item><title><![CDATA[CF 715B 最短路]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/52864768</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/52864768</guid><author>turtlew</author><pubDate>Wed, 19 Oct 2016 23:03:08 +0800</pubDate><description><![CDATA[给n点m边，L，s，t 
修改m条边中边为0的边， 
使满足s,t的最短路长度是L，且边为0的边的权值必须在[1,1e18]内做法，1.先做一次假设每条零边都不可经过的最短路，如果dis[t] < L，则是NO 
2.再将每条零边修改成1，如果此时dis[t] > L 也是 NO 
除了这两种情况，就必有YES，至于为啥，按下面的思路想一下就知道了将第二个操作后的最短路拿出来，对非最短路上的零边都赋]]></description><category></category></item><item><title><![CDATA[MDZZ]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/52812484</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/52812484</guid><author>turtlew</author><pubDate>Fri, 14 Oct 2016 02:16:56 +0800</pubDate><description><![CDATA[给一个大小是n，1<=ai<=n的数组，求max(ai%aj,i#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <vector>
#include <string>
#include <stack>
#include <set>
#include <map>
#include <iostr]]></description><category></category></item><item><title><![CDATA[给自己看的NIM]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/52254322</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/52254322</guid><author>turtlew</author><pubDate>Fri, 19 Aug 2016 21:24:33 +0800</pubDate><description><![CDATA[看了下nim，写点东西记录下别以后又忘了 
NIM : 
通常的Nim游戏的定义是这样的：有若干堆石子，每堆石子的数量都是有限的，合法的移动是“选择一堆石子并拿走若干颗（不能不拿）”，如果轮到某个人时所有的石子堆都已经被拿空了，则判负（因为他此刻没有任何合法的移动）。（百度百科）先讨论单堆.. 
sg(x)=mex(sg(y)|x->y) 
mex就是该集合的补集的最小自然数，例如mex(0,1,3]]></description><category></category></item><item><title><![CDATA[.]]></title><link>https://blog.youkuaiyun.com/turtlew/article/details/52142062</link><guid>https://blog.youkuaiyun.com/turtlew/article/details/52142062</guid><author>turtlew</author><pubDate>Sun, 07 Aug 2016 11:59:53 +0800</pubDate><description><![CDATA[题意: 有n个人在圆桌上吃饭，主人位置固定，给m个关系ki表示第i个人的旁边是第ki个人，问有多少种方式可以排列… 
注：这是一个圆桌，所以要分左右两边的… 
给你n个人和m个关系 
并查集处理下每个联通块，对(全部联通块-1)（因为1号位固定）进行全排列 
再对每个元素大于1的联通块进行ans*=2，因为他们可以调转顺序 
最后还有个最蛋疼的就是 
n==2输出1//URAL 1962
#incl]]></description><category></category></item></channel></rss>