<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Eriii的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Eriii</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Eriii]]></copyright><item><title><![CDATA[cf 687B - Remainders Game]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120314855</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120314855</guid><author>Eriii</author><pubDate>Wed, 15 Sep 2021 20:01:34 +0800</pubDate><description><![CDATA[cf 687B - Remainders Game
https://codeforces.com/problemset/problem/687/B
假设有多个解，那么任意拿两个都有两者的差整除lcm{ci}lcm\{c_i\}lcm{ci​} 和 k，设两者差为x∗lcm{ci}x*lcm\{c_i\}x∗lcm{ci​} ，x 为任意整数，若要 x1 和 x2 对于 k 同余，那么由于x是任意的，所以要有k∣lcm{ci}k | lcm\{c_i\}k∣lcm{ci​}，才能有x%k是固定的，否则不是。
]]></description><category></category></item><item><title><![CDATA[cf 1176D - Recover it!]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120314834</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120314834</guid><author>Eriii</author><pubDate>Wed, 15 Sep 2021 18:59:56 +0800</pubDate><description><![CDATA[cf 1176D - Recover it!
https://codeforces.com/problemset/problem/1176/D
sort，从大到小遍历判
#include&lt;bits/stdc++.h&gt;
using namespace std;

const int N = 2e5+10, M = 3e6+10;

bool vis[M];
int p[M], cntp;
int d[M];
int rk[M];

int n, a[M];
int st[M];

int ans[]]></description><category></category></item><item><title><![CDATA[cf 1225D - Power Products]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120266239</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120266239</guid><author>Eriii</author><pubDate>Mon, 13 Sep 2021 14:27:06 +0800</pubDate><description><![CDATA[cf 1225D - Power Products
https://codeforces.com/problemset/problem/1225/D
题意：给一些数，问满足下列条件的数对的数量，对于给定的 k，∃x,s.t.&nbsp;ai∗aj=xk\exists x, s.t.   \ a_i * a_j = x^k∃x,s.t.&nbsp;ai​∗aj​=xk。
思路：容易想到分解质因数，再将指数都对于k取模，将所有的数都这样处理，称为化简。同时对于这些数剩下的质因数，我们可以根据 k 算得与之对应满]]></description><category></category></item><item><title><![CDATA[cf 1030D - Vasya and Triangle]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120239088</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120239088</guid><author>Eriii</author><pubDate>Sat, 11 Sep 2021 16:17:50 +0800</pubDate><description><![CDATA[cf 1030D - Vasya and Triangle
https://codeforces.com/problemset/problem/1030/D
题意：在一个n*m的正方形中画出一个m∗nk\frac{m*n} {k}km∗n​ 大小的三角形，让输出yes no和任一方案。
做法 ： 首先简单的分析可以得到， 需要得到的这个面积要么是整数， 要么加一个0.5（很显然）然后计算任意一个三角形的公式为ac−bd2,a≤n,c≤m,b≤a,d≤c\frac{ac - bd} 2, a \le n, c]]></description><category></category></item><item><title><![CDATA[cf 1548B - Integers Have Friends]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120236060</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120236060</guid><author>Eriii</author><pubDate>Sat, 11 Sep 2021 12:42:54 +0800</pubDate><description><![CDATA[cf 1548B - Integers Have Friends
 爽了 过了 

https://codeforces.com/problemset/problem/1548/B
题意： 给一段序列， 求满足存在某数使得区间全部元素同余的最长连续子序列的长度。
做法 ： 容易想到先转化为差分数组（满足条件的子序列的元素都为 a = mx + y)，然后就变成求最长的区间gcd大于 1 的区间长度
预处理能快速得到一段区间的gcd的查询，可以写线段树 也可以写st表， 然后固定左端点，得到满足条件的最大右端]]></description><category></category></item><item><title><![CDATA[cf 1034A - Enlarge GCD]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120229685</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120229685</guid><author>Eriii</author><pubDate>Fri, 10 Sep 2021 21:03:28 +0800</pubDate><description><![CDATA[cf 1034A - Enlarge GCD
题目链接
思路，求出全局gcd，将所有元素除gcd， 再求出每个质因子在所有的数中出现的次数，取出现最多次的，记为x，n - x为答案
（又读错题了，辣鸡，只要能让原本的gcd变大就好啊，and 没想到这么暴力，但是确实这么暴力，如果是a的范围是1e8就无了，怪不得是1.5e7）
代码
#include&lt;bits/stdc++.h&gt;
using namespace std;

typedef long long ll;

const int N = ]]></description><category></category></item><item><title><![CDATA[cf 1295D - Same GCDs]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120228406</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120228406</guid><author>Eriii</author><pubDate>Fri, 10 Sep 2021 19:33:44 +0800</pubDate><description><![CDATA[cf 1295D - Same GCDs
题目链接
做法 ：将问题化简为求区间内与x互质的数
令 x=a+x,gcd(a,m)=d,a=k1d,m=k2d,x=k3dx = a + x, gcd(a, m) = d, a = k_1d, m = k_2d, x = k_3dx=a+x,gcd(a,m)=d,a=k1​d,m=k2​d,x=k3​d，则 gcd(x,m)=gcd(k2d,k3d）=d∗gcd(k2,k3)=dgcd(x, m) = gcd(k_2d, k_3d） = d * gcd(k_2, ]]></description><category></category></item><item><title><![CDATA[cf 584D - Dima and Lisa]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120225062</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120225062</guid><author>Eriii</author><pubDate>Fri, 10 Sep 2021 16:32:47 +0800</pubDate><description><![CDATA[cf 584D - Dima and Lisa
题目链接
做法 ： 暴力枚举验证1e9内哥德巴赫猜想，将输入的奇数减去3，变成合数，然后验证，特殊情况特判
暴力枚举验证哥德巴赫猜想， 经验之谈？（看网上的题解，说1e9内相邻质数距离不超过300，可能是一个根据，可是不知道为什么是一个根据，总之 知道了可以暴力枚举验证哥德巴赫猜想就完了，虽然这样的经验之谈有点不爽）
代码
#include&lt;bits/stdc++.h&gt;
using namespace std;

int prime(int x) ]]></description><category></category></item><item><title><![CDATA[cf 1401D - Maximum Distributed Tree]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120223805</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120223805</guid><author>Eriii</author><pubDate>Fri, 10 Sep 2021 15:53:23 +0800</pubDate><description><![CDATA[cf 1401D - Maximum Distributed Tree
题目链接
做法 ： 深搜（记录当前边下节点个数， 来统计对答案产生贡献的次数） + 贪心 （将最大的乘积赋值给对于答案产生最多次贡献的边，其他顺次给）
#include&lt;bits/stdc++.h&gt;
using namespace std;

typedef long long ll;
typedef pair&lt;int, int&gt; pii;
typedef pair&lt;ll, int&gt; pli;

co]]></description><category></category></item><item><title><![CDATA[cf 1569D - Inconvenient Pairs]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120207113</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120207113</guid><author>Eriii</author><pubDate>Thu, 09 Sep 2021 18:29:08 +0800</pubDate><description><![CDATA[cf 1569D - Inconvenient Pairs
（由于感觉代码很优美想记录下来，当然代码重复的部分写成函数就更好了
题目链接
方法：按x排序，顺次更新记录某列（y）的cnt， y同理
#include&lt;bits/stdc++.h&gt;
#define x first
#define y second

using namespace std;

typedef pair&lt;int, int&gt; pii;
typedef long long ll;

const int N = 3]]></description><category></category></item><item><title><![CDATA[cf 1561D1 - Up the Strip (simplified version)]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120207061</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120207061</guid><author>Eriii</author><pubDate>Thu, 09 Sep 2021 18:24:28 +0800</pubDate><description><![CDATA[cf 1561D1 - Up the Strip (simplified version)
(就纯打个卡
题目链接
整除分块 + dp
#include&lt;bits/stdc++.h&gt;
using namespace std;

typedef long long ll;

const int N = 2e5 + 10;

int node[N];
int n, m;
int f[N];
int s[N];

int main() {
    scanf("%d%d", &amp;n, &amp;]]></description><category></category></item><item><title><![CDATA[cf 1538D - Another Problem About Dividing Numbers]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120183406</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120183406</guid><author>Eriii</author><pubDate>Wed, 08 Sep 2021 16:58:44 +0800</pubDate><description><![CDATA[1538D - Another Problem About Dividing Numbers
题目链接
题意：给a ，b 两个数， 要求在恰好 k 步操作内使得 a， b相等， 操作为让 a 或 b 除去一个自身的因子。
思路：分解质因数，设 a ，b 的最大公因子为gcd，最少需要 2−(a==gcd)−(b==gcd)2 - (a == gcd) - (b == gcd)2−(a==gcd)−(b==gcd) （记为minv）步使得两者相等，最多需要cal(a/gcd)+cal(b/gcd)cal(a/]]></description><category></category></item><item><title><![CDATA[1400B - RPG Protagonist]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120170731</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120170731</guid><author>Eriii</author><pubDate>Wed, 08 Sep 2021 01:28:51 +0800</pubDate><description><![CDATA[1400B - RPG Protagonist
题目链接
题意：有两个大小为 p 和 f 的袋子， 有 cnts 个 重量为 s 物品， 和 cntw 个 重量为 w 的物品，问最多能拿多少个物品。
暴力枚举 + 贪心（优先拿小的）
#include&lt;bits/stdc++.h&gt;
using namespace std;

int p, f;
int s, w;
int cnts, cntw;

int solve(int x) {
    int res = x;
    int pp = p]]></description><category></category></item><item><title><![CDATA[cf 1336 Xenia and Colorful Gems]]></title><link>https://blog.youkuaiyun.com/Eriii/article/details/120157094</link><guid>https://blog.youkuaiyun.com/Eriii/article/details/120157094</guid><author>Eriii</author><pubDate>Tue, 07 Sep 2021 14:26:09 +0800</pubDate><description><![CDATA[cf1336 Xenia and Colorful Gems
题意 : 给定三组数，分别选择x， y， z，使得 (x−y)2+(y−z)2+(z−x)2(x-y)^2 + (y-z)^2 + (z-x)^2(x−y)2+(y−z)2+(z−x)2 最小。
方法：假设 x&lt;y&lt;zx &lt; y &lt; zx&lt;y&lt;z ，给定 x 和 z，y 最接近于(x+z)/2(x+z)/2(x+z)/2时，对于 x，z，值最小。那么 z 接近于 x 的时候，对于 x， 值最小。枚举 x ，选择]]></description><category></category></item></channel></rss>