<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[code___farmer的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/code___farmer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; code___farmer]]></copyright><item><title><![CDATA[小希的迷宫]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/120535947</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/120535947</guid><author>code___farmer</author><pubDate>Tue, 28 Sep 2021 19:42:44 +0800</pubDate><description><![CDATA[WA了无数发之后来填坑QAQ
解题思路：
很容易想到用并差集，对输入的点进行合并。如果有两个点属于同一个并查集则输出No，否则输出Yes。
你以为这么简单吗

小希希望任意两个房间有且仅有一条路径可以相通（除非走了回头路）

仔细读题发现什么没有？
任意两个房间相通且仅有一条路径相通
所以最终还要判断的并查集的个数是否为1，若不为1则输出No
你以为这就完了啦
还要考虑特殊情况：如果只输入0 0，则应输出Yes。
至此，该题的坑就全部填满了。
#include &lt;bits/stdc++.h&gt;
u]]></description><category></category></item><item><title><![CDATA[Power Sum]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/120373570</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/120373570</guid><author>code___farmer</author><pubDate>Sat, 18 Sep 2021 20:38:18 +0800</pubDate><description><![CDATA[Power Sum
题意：
给定正整数n，求正整数k,使得长度为k(1&lt;=k&lt;=n+2)的数组a[i](a[i]∈{−1,1})a[i](a[i]\in\{-1,1\})a[i](a[i]∈{−1,1})满足
∑i=1kai∗i2=n\sum_{i=1}^k {a_i*i^2}=ni=1∑k​ai​∗i2=n
思路： 找规律（构造）
n2−(n−1)2=2∗n−1n^2 - (n-1)^2 = 2*n-1n2−(n−1)2=2∗n−1
(n−2)2−(n−3)2=2∗n−5(n-2)^2 - (]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练8]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/120151132</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/120151132</guid><author>code___farmer</author><pubDate>Tue, 07 Sep 2021 09:33:17 +0800</pubDate><description><![CDATA[E-Rise of Shadows
题意：
判断所给年份是否是闰年并且是质数
思路：
润年的判断方法：能被4整除不能被100整除或者能被400整除
由此可知：所有的闰年的不是质数
AC代码：
#include &lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
const int N = 2e6+5;
int t,tem;
int main() {
	cin&gt;&gt;t;
	while(t--){
		cin&gt;&gt;]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练7]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/120130095</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/120130095</guid><author>code___farmer</author><pubDate>Mon, 06 Sep 2021 11:13:55 +0800</pubDate><description><![CDATA[H-xay loves count
题意：
给定长度为n的数组，求有多少三元组（i,j,k)满足ai×aj=aka_i\times a_j=a_kai​×aj​=ak​
思路：
记录1−1061-10^61−106中每个数出现的次数，再暴力计算
AC代码：
#include&lt;bits/stdc++.h&gt;
using namespace std;
const int N=1000005;
int n,x,a[N];
int main(){
	scanf("%d",&amp;n);
	for(int]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练6]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/119961780</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/119961780</guid><author>code___farmer</author><pubDate>Fri, 27 Aug 2021 22:38:47 +0800</pubDate><description><![CDATA[I-Intervals on the Ring
题意：
一个环由1-n组成，两两之间彼此相邻。现在给出一些互不相交的区间，要求构造一些区间，使得这些区间的交集为所给区间的并集。
思路：
要使构造的所有区间的交集为已知区间的并集，那么构造的每一个区间即要覆盖所有的已知区间有要留有一定的空余；容易想到：对于题目已给区间的其他单个区间的补区间即为所求区间
即先将所给区间按左端点大小排序，对于每一个区间输出当前区间的左端点和上一个区间的右端点；特判只有一个区间的情况；
AC代码：
#include &lt;bits]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练5]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/119954955</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/119954955</guid><author>code___farmer</author><pubDate>Fri, 27 Aug 2021 15:54:56 +0800</pubDate><description><![CDATA[K-King of Range
题意：
给一数组，m次询问，每次询问给定k值，问有多少个区间的极差值&gt;k
思路：
对于区间[l,r] ，我们可以先固定右端点r，寻找离r最近的l且满足区间[l,r]极差值&gt;k。
可以考虑在[1,r]内找最大值和最小值计算差值；若大于k，则将位于前面的值更新（下标小的更新，因为要寻找最大的l），若是最大值在前则找次大值代替最大值，若是最小值在前则找次小值代替最小值并重复该步骤，直到差值不大于k
可以用递增队列和递减队列来实现，队列存放a数组的下标。
遍历右端点r（从]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练4]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/119796367</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/119796367</guid><author>code___farmer</author><pubDate>Thu, 19 Aug 2021 10:35:38 +0800</pubDate><description><![CDATA[F-Just a joke
题目大意：
Alice和Bob两个人玩游戏，有一个包含n个顶点的无向图G，Alice和Bob轮流执行以下的某个操作：

删除G的一条边
删除G的不含环的连通分量

最后不能操作的人判定为输，Alic和Bob都采用最优策略；
给定G的顶点数n和m条边，求最终是谁赢得了比赛
解题思路：
这道题过眼一看就知道是博弈论，而博弈类问题通常有三种解法：1.纯思维 2.找板子 3.搞SG函数
分析题目：
执行操作1，边数 - 1
执行操作2，点数 - x, 边数 -（x-1）
即任何一种操作都]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练3]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/119743790</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/119743790</guid><author>code___farmer</author><pubDate>Mon, 16 Aug 2021 22:32:39 +0800</pubDate><description><![CDATA[J-Counting Triangles

思维题，正难则反
思路：
看到此题的第一反应通常是搜索，但会超时，优化的话也会超时。
题目要求三边颜色相同的三角形，那么可以将所有的三角形的个数减去三边颜色不完全相同的三角形的个数即可得到答案。
所有的三角形的个数：Cn3=n∗(n−1)∗(n−1)/6C_n^3=n*(n-1)*(n-1)/6Cn3​=n∗(n−1)∗(n−1)/6
三边颜色不完全相同的三角形的个数：将每个点相连的黑边的个数和白边的个数相乘再相加，最后除以2（每个三角形会被重复数一次）。
#in]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练2]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/119706418</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/119706418</guid><author>code___farmer</author><pubDate>Sat, 14 Aug 2021 21:35:02 +0800</pubDate><description><![CDATA[D-Er Ba Game

思路：
简单的模拟，就是将各种情况判断一下，看谁的牌大并输出结果
#include&lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
#define rep(i,a,b) for(int i=a;i&lt;=b;i++)
#define rep1(i,a,b) for(int i=a;i&lt;b;i++)
#define pre(i,a,b) for(int i=a;i&gt;=b;i--)
#def]]></description><category></category></item><item><title><![CDATA[2021暑期牛客多校训练1]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/119534819</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/119534819</guid><author>code___farmer</author><pubDate>Mon, 09 Aug 2021 12:01:17 +0800</pubDate><description><![CDATA[Determine the Photo Position
题目描述
You have taken the graduation picture of graduates. The picture could be regarded as a matrix A of n × n, each element in A is 0 or 1, representing a blank background or a student, respectively.
However, teachers are too b]]></description><category></category></item><item><title><![CDATA[ACM之奇奇怪怪的知识]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/115907498</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/115907498</guid><author>code___farmer</author><pubDate>Sun, 25 Apr 2021 14:58:35 +0800</pubDate><description><![CDATA[ACM里一些奇奇怪怪的知识，说不定能帮到你。]]></description><category></category></item><item><title><![CDATA[混合背包，分组背包，二维费用的背包问题]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/115915667</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/115915667</guid><author>code___farmer</author><pubDate>Tue, 20 Apr 2021 18:33:37 +0800</pubDate><description><![CDATA[混合背包，二维费用的背包问题，分组背包
混合背包
混合背包就是将01背包，完全背包，多重背包混合起来的背包问题。也就是说，有的物品只可以取一次（01背包），有的物品可以取无限次（完全背包），有的物品可以取的次数有一个上限（多重背包）。应该怎么求解呢？
首先考虑01背包与完全背包的混合
考虑到在01背包和完全背包中的代码只有一处不同，故如果只有两类物品：一类物品只能取一次，另一类物品可以取无限次，那么只需在对每个物品应用转移方程时，根据物品的类别选用顺序或逆序的循环即可，复杂度是O(VN)。伪代码如下：
fo]]></description><category></category></item><item><title><![CDATA[ACM模板（持续更新）]]></title><link>https://blog.youkuaiyun.com/code___farmer/article/details/115907308</link><guid>https://blog.youkuaiyun.com/code___farmer/article/details/115907308</guid><author>code___farmer</author><pubDate>Tue, 20 Apr 2021 14:48:56 +0800</pubDate><description><![CDATA[快读快输模板：
inline int read() {
	char ch = getchar();
	int x = 0, f = 1;
	while(ch &lt; '0' || ch &gt; '9') {
		if(ch == '-') f = -1;
		ch = getchar();
	}
	while('0' &lt;= ch &amp;&amp; ch &lt;= '9') {
		x = x * 10 + ch - '0';
		ch = getchar();
	}
	return x * ]]></description><category></category></item></channel></rss>