<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Bug___Maker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Bug___Maker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Bug___Maker]]></copyright><item><title><![CDATA[Codeforces Round #507 (Div. 1） B. Subway Pursuit 交互题]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82823970</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82823970</guid><author>Bug___Maker</author><pubDate>Sun, 23 Sep 2018 18:49:13 +0800</pubDate><description><![CDATA[脑洞交互题   给出范围 系统会返回 yes no 来表示列车是不是在该范围内

二分范围  然后范围差不多了 猜一下范围里面的一个点 然后继续二分范围 直到猜对   注意可以用cout&amp;lt;&amp;lt;endl清理缓存区


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
typedef long long ll;
int main(){
	s...]]></description><category></category></item><item><title><![CDATA[Codeforces Round #507 (Div. 1）C. Network Safety]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82823946</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82823946</guid><author>Bug___Maker</author><pubDate>Sun, 23 Sep 2018 18:43:40 +0800</pubDate><description><![CDATA[题意：给个n个点 m条边的图  每个点有个权值c 范围（0，2^k-1） 如果边的两个定点的权值不同 那么他们的连接就是安全的   现在有一个病毒  他的值x 在上述范围内随机   存在一个集合 &amp;lt;set&amp;lt;int&amp;gt;,int&amp;gt;前面 是点集 后面病毒值x  如果 x感染了 前面的点集的所有点后  （攻击就是  c=c^x）原来的连接仍然是安全的  就是合法的  让你求有多少个合...]]></description><category></category></item><item><title><![CDATA[Help Tomisu UVA - 11440  gcd+欧拉 加证明]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82667943</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82667943</guid><author>Bug___Maker</author><pubDate>Wed, 12 Sep 2018 20:35:55 +0800</pubDate><description><![CDATA[紫书的思路 其中有个证明是看的 https://blog.youkuaiyun.com/a197p/article/details/45649019 的博客


引用自 https://blog.youkuaiyun.com/a197p/article/details/45649019 

那么先看一个证明：
求kn中与n互质的个数，答案为kϕ(n)。ϕ(n)表示1-n中与n互质的个数，那么由此考虑[n + 1, 2n]...]]></description><category></category></item><item><title><![CDATA[Joseph's Problem UVA - 1363]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82665755</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82665755</guid><author>Bug___Maker</author><pubDate>Wed, 12 Sep 2018 17:58:15 +0800</pubDate><description><![CDATA[紫书写的很清楚

被除数固定，除数逐次加1，直观上余数也应该有规律。 假设k/i的整数部分等于p，则k
mod i = k-i*p。 因为k/(i+1)和k/i差别不大，如果k/(i+1)的整数部分也等于p，则k mod (i+1) = k-
(i+1)*p = k-i*p - p = k mod i - p。 换句话说，如果对于某一个区间i, i+1, i+2,…, j，k除以它们
的商的整数部...]]></description><category></category></item><item><title><![CDATA[Double Patience UVA - 1637  dp+概率]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82529945</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82529945</guid><author>Bug___Maker</author><pubDate>Sat, 08 Sep 2018 15:33:56 +0800</pubDate><description><![CDATA[注意 一个是等概率选择 则  d[i]为后继状态的成功概率的平均值  意思是  如果取了 牌堆 1 2的牌后 剩下的选择只有 取1 3 后才能成功  则取 1 2成功的概率 为  取 1 3的方案 即 1   除以总方案数


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
char card[9][4][3];
map&amp;lt;vector&amp;l...]]></description><category></category></item><item><title><![CDATA[筛法求Phi]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82528728</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82528728</guid><author>Bug___Maker</author><pubDate>Sat, 08 Sep 2018 13:30:00 +0800</pubDate><description><![CDATA[
void phi_table(int n){
for(int i=2;i&amp;lt;=n;i++)phi[i]=0;//先初始化所有为0
phi[1]=1;//小于等于1且与1互质的数 初始化为1
for(int i=2;i&amp;lt;=n;i++)if(!phi[i])//如果这个数没有被改变过  说明这个数 i为素数
	for(int j=i;j&amp;lt;=n;j+=i){	
	if(!phi[j])...]]></description><category></category></item><item><title><![CDATA[Irrelevant Elements UVA - 1635 二项式定理+唯一分解定理]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82528175</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82528175</guid><author>Bug___Maker</author><pubDate>Sat, 08 Sep 2018 11:59:17 +0800</pubDate><description><![CDATA[ n个数 一层一层往下加就会形成类似杨辉三角形的形状 到了最后一行 系数呈现二项式定理分布 从 C(n-1,0)到C(n-1,n-1) 又因为m至少为2 所有C(n-1,0) C(n-1,n-1)可以不用算  又因为公式C(n,k)=(n-k+1)/kC(n,k-1)可用用递推关系算 只要在前一个的基础上乘以那个递推系数  

 


#include&amp;lt;bits/stdc++.h&amp;gt;
u...]]></description><category></category></item><item><title><![CDATA[Minimum Sum LCM UVA - 10791  gcd+lcm+唯一分解定理]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82502906</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82502906</guid><author>Bug___Maker</author><pubDate>Fri, 07 Sep 2018 21:24:26 +0800</pubDate><description><![CDATA[这里的题目意思是 2个或2个以上的数组成的最大共因数是n并且使得这几个数的和最小  例如有两数 a b  不互质  即 gcd(a,b)!=1

假设他们的最小公倍数 lcm(a,b)=n  即  a/gcd(a,b)*b  而a/gcd(a,b) 和n的最小公倍数也为n   反而和更小了  所以 应该取互质的数

这里就要用到唯一分解定理了 其中有一些细节处理见代码


#include&amp;lt;...]]></description><category></category></item><item><title><![CDATA[牛客练习赛25 最长区间]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82469397</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82469397</guid><author>Bug___Maker</author><pubDate>Thu, 06 Sep 2018 22:33:51 +0800</pubDate><description><![CDATA[其中表示left_len right_len可以用一个Len[i] 表示 len[i]表示包括i的在i之前的最长递增序列 用Len数组可以很方便得记录到从x往左的left_len等于多少  然后向由可以推出right_len

cnt[i ]计算每一个长度i的序列有多少个 其中 一个i的子长度的序列也会记录

更新a[x]后 只会改变x左右的值 例如 如果ax比ax-1要小了 则len[x]=1;...]]></description><category></category></item><item><title><![CDATA[牛客练习赛25 	因数个数和]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82467636</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82467636</guid><author>Bug___Maker</author><pubDate>Thu, 06 Sep 2018 20:30:41 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/u011787439/article/details/82183783 大佬的博客写的很清楚  求1-n的因子个数和 就是从1-n中qu的数任意取一个数i 在1-n之间有多少是i的倍数 即[n/i]   因为n/i的结果也是 n的因数 所以可以只算 1-sqrt(n)  然后乘 2 ， 因为n/i可以等于i，乘2重复计算了，还要减去这些重复计算的数  只...]]></description><category></category></item><item><title><![CDATA[Choose and divide UVA - 10375 唯一分解定理+Eratosthenes筛法]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82389784</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82389784</guid><author>Bug___Maker</author><pubDate>Tue, 04 Sep 2018 20:25:51 +0800</pubDate><description><![CDATA[Eratosthenes筛法筛一遍素数 直接朴素判也能过 然后 写一个add_factorial算阶乘   add_integer用来唯一分解定理


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
bool is_prime[100000+5];
vector&amp;lt;int&amp;gt;prime;
int e[100000+5];
void in...]]></description><category></category></item><item><title><![CDATA[Disgruntled Judge UVA - 12169 拓展欧几里得 +暴力]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82386625</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82386625</guid><author>Bug___Maker</author><pubDate>Tue, 04 Sep 2018 17:02:32 +0800</pubDate><description><![CDATA[参考了 https://www.cnblogs.com/Przz/p/5409721.html 大佬的题解 他写的推导非常清晰

 


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
typedef long long ll;
const int mod =10001;
long long f[10005];
void gcd(ll a,ll...]]></description><category></category></item><item><title><![CDATA[Bigger is Better UVA - 12105 dp]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82319464</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82319464</guid><author>Bug___Maker</author><pubDate>Sun, 02 Sep 2018 21:18:04 +0800</pubDate><description><![CDATA[用两个数组 一个dp[i][j]表示用i根火柴 余数为j的数字最大位数 而p[i][j]记录一下这个位数中的最右边的那个数字是什么


#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstring&amp;gt;

using namespace std;

const int maxn = 100 + 5;
const int maxm = 3000 + 5;

// dp[i]...]]></description><category></category></item><item><title><![CDATA[Fixing the Great Wall UVA - 1336 区间dp+前缀和+记忆化]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82318750</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82318750</guid><author>Bug___Maker</author><pubDate>Sun, 02 Sep 2018 20:24:55 +0800</pubDate><description><![CDATA[紫书代码  dp中表示方向的p  因为机器人的有效位置肯定是i j两个点上 所以只要判断 是从左端点出发还是从右端点出发就能很快得计算出路程的时间  p=0时表示当前位于左边如果想要J+1 就要  j+1的标号x减去i的x  其他位置同理

同时最后要加上 每个点时间为0的修理费用


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
const...]]></description><category></category></item><item><title><![CDATA[Dropping water balloons UVA - 10934  dp 有点难想]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82316458</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82316458</guid><author>Bug___Maker</author><pubDate>Sun, 02 Sep 2018 16:17:52 +0800</pubDate><description><![CDATA[思路 dp[i][j]表示用i个球实验j次款所能测试的楼的最高层数  这个层数 不是从1开始的狭义的层数 是一个所能测的的层数的值  比如 在2 楼 如果所能测试的最高层数为5 则最高的所能测的层数位2+5=7

如果气球破了 当前测试的楼层位k  dp[i-1][j-1]+1 ==k  

如果没破 当前测试的楼层位k   dp[i][j]=k+dp[i][j-1]表示测试之后没破则 i个球测j...]]></description><category></category></item><item><title><![CDATA[Tango Tango Insurrection UVA - 10618  多转移dp 终点逆推]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82315326</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82315326</guid><author>Bug___Maker</author><pubDate>Sun, 02 Sep 2018 14:33:36 +0800</pubDate><description><![CDATA[紫书的代码 多转移问题 从终点逆推 


#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstring&amp;gt;
#include&amp;lt;cassert&amp;gt;

const int UP = 0;
const int LEFT = 1;
const int RIGHT = 2;
const int DOWN = 3;

const int maxn = 70 + 5;

/...]]></description><category></category></item><item><title><![CDATA[Fund Management UVA - 1412 状压dp 状态的表示]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82289075</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82289075</guid><author>Bug___Maker</author><pubDate>Sat, 01 Sep 2018 17:28:11 +0800</pubDate><description><![CDATA[太菜 看紫书代码看半天见注释 主要是状态难表达 转移倒是非常简单



#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstring&amp;gt;
#include&amp;lt;vector&amp;gt;
#include&amp;lt;map&amp;gt;
using namespace std;

const double INF = 1e30;
const int maxn = 8;
const i...]]></description><category></category></item><item><title><![CDATA[Twenty Questions UVA - 1252 状压dp 子集生成]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82287600</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82287600</guid><author>Bug___Maker</author><pubDate>Sat, 01 Sep 2018 15:31:01 +0800</pubDate><description><![CDATA[题意有点绕 等于说是求最优策略下 即排除方案最优的情况下   需要排除最多次的集合的排除次数  详见代码注释


#include&amp;lt;bits/stdc++.h&amp;gt;
const int maxn=13;
char objects[300][200];
int d[1&amp;lt;&amp;lt;maxn][1&amp;lt;&amp;lt;maxn],cnt[1&amp;lt;&amp;lt;maxn][1&amp;lt;&amp;lt;maxn],...]]></description><category></category></item><item><title><![CDATA[Headmaster's Headache UVA - 10817  dp集合构造]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82262748</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82262748</guid><author>Bug___Maker</author><pubDate>Fri, 31 Aug 2018 22:14:12 +0800</pubDate><description><![CDATA[紫书dp 用位表示集合  其中位运算集合需要注意下


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std ;
int m,n,s;
int d[150][1&amp;lt;&amp;lt;10][1&amp;lt;&amp;lt;10];
int c[150];
int st[150];
string temp;
const int INF=1&amp;lt;&amp;lt;20;
int dp...]]></description><category></category></item><item><title><![CDATA[Perfect Service UVA - 1218  树形dp]]></title><link>https://blog.youkuaiyun.com/Bug___Maker/article/details/82261786</link><guid>https://blog.youkuaiyun.com/Bug___Maker/article/details/82261786</guid><author>Bug___Maker</author><pubDate>Fri, 31 Aug 2018 20:47:17 +0800</pubDate><description><![CDATA[紫书dp 主要是状态的确定  无根树转有根树 d(u,2)的状态转移很有意思 详见代码注释


#include&amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
int n;
const int maxn=10000+5;
const int INF=1&amp;lt;&amp;lt;20;
vector&amp;lt;int&amp;gt;G[maxn],vertices;
int p[ma...]]></description><category></category></item></channel></rss>