<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[For_ACM的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/For_ACM</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; For_ACM]]></copyright><item><title><![CDATA[差分数组]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108941128</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108941128</guid><author>For_ACM</author><pubDate>Tue, 06 Oct 2020 17:07:51 +0800</pubDate><description><![CDATA[对数组中的一个区间进行同增 / 同减。
原数组a[n];
差分数组b[n];
程序中，对b进行O(2)操作，最后用O(n)将b的操作加入a。
由最后一步O(n)
for(int i=1;i&lt;=n;i++)
    a[i]=a[i-1]+b[i];

得：b[i]影响a[i]~a[n]
所以：若要改a[x]~a[y]，操作b[x]和b[y+1]
减：b[x]–, b[y+1]++;
加：b[x]++, b[y+1]–;

...]]></description><category></category></item><item><title><![CDATA[Codeforces Round #668 (Div. 2) B. Array Cancellation（思维）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108922878</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108922878</guid><author>For_ACM</author><pubDate>Sun, 04 Oct 2020 21:23:06 +0800</pubDate><description><![CDATA[加一些小小的优化，可以解决Time limit exceeded
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;vector&gt;
#include &lt;queue&gt;
#include &lt;stack&gt;
#include &lt;set&gt;
#include &lt;map&gt;
#includ]]></description><category></category></item><item><title><![CDATA[Codeforces Round #668 (Div. 2) A. Permutation Forgery （思维）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108918162</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108918162</guid><author>For_ACM</author><pubDate>Sun, 04 Oct 2020 13:02:25 +0800</pubDate><description><![CDATA[题目写的非常复杂，其实把数组倒着输一遍就行了
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;vector&gt;
#include &lt;queue&gt;
#include &lt;stack&gt;
#include &lt;set&gt;
#include &lt;map&gt;
#include &lt;stri]]></description><category></category></item><item><title><![CDATA[Codeforces Round #673 (Div. 2) A. Copy-paste（水题）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108917068</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108917068</guid><author>For_ACM</author><pubDate>Sun, 04 Oct 2020 10:42:48 +0800</pubDate><description><![CDATA[水题，没必要看
/* ***********************************************
┆  ┏┓　　　┏┓ ┆
┆┏┛┻━━━┛┻┓ ┆
┆┃　　　　　　　┃ ┆
┆┃　　　━　　　┃ ┆
┆┃　┳┛　┗┳　┃ ┆
┆┃　　　　　　　┃ ┆
┆┃　　　┻　　　┃ ┆
┆┗━┓　马　┏━┛ ┆
┆　　┃　勒　┃　　┆　　　　　　
┆　　┃　戈　┗━━━┓ ┆
┆　　┃　壁　　　　　┣┓┆
┆　　┃　的草泥马　　┏┛┆
┆　　┗┓┓┏━┳┓┏┛ ┆
┆　　　┃┫┫　┃┫┫ ┆
┆]]></description><category></category></item><item><title><![CDATA[Codeforces Round #673 (Div. 2) B. Two Arrays （思维）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108917040</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108917040</guid><author>For_ACM</author><pubDate>Sun, 04 Oct 2020 10:40:48 +0800</pubDate><description><![CDATA[做题前的思考，比盲目写题重要一万倍！！！
你盲目写多长时间，就会浪费多长时间！！！
题意：给一个两两和为T序列，分为两列，使各列内和为T的数对尽可能少。
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;vector&gt;
#include &lt;queue&gt;
#include &lt;stack&gt;
#incl]]></description><category></category></item><item><title><![CDATA[poj2965 The Pilots Brothers‘ refrigerator （枚举，DFS，回溯）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108914670</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108914670</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 23:29:37 +0800</pubDate><description><![CDATA[回溯要写吐了，都没写出来
代码里是用DFS的步数num作为ans[num]来存的回溯
#include&lt;cstdio&gt;
#include&lt;cstring&gt;
#include&lt;algorithm&gt;
#include&lt;string.h&gt;
#include&lt;iostream&gt;
#include&lt;cmath&gt;
using namespace std;
int map[10][10],flag=0,ans;
struct bbq
{
    in]]></description><category></category></item><item><title><![CDATA[poj1753 Flip Game（枚举，DFS）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108914138</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108914138</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 22:17:33 +0800</pubDate><description><![CDATA[题意：一个4*4的围棋棋盘，黑白子随机，每次翻转同时翻转四周的棋子，最少翻转几次使所有棋子同色。
代码，非常漂亮的DFS
#include &lt;cstdio&gt;
#include &lt;iostream&gt;
using namespace std;
int map[10][10]={0};//考虑到要不断翻转，我们用0和1代表棋盘黑白两种颜色，这样翻转就可以用“非”运算符来代替了
int dir[5][2]={{-1,0},{1,0},{0,-1},{0,1},{0,0}};
int sum;]]></description><category></category></item><item><title><![CDATA[poj3094 Quicksum（大水题）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108913714</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108913714</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 21:31:12 +0800</pubDate><description><![CDATA[#include&lt;cstring&gt;
#include&lt;cstdio&gt;
#include&lt;algorithm&gt;
using namespace std;

char str[300];
int sum;

int main()
{
	while(gets(str), str[0] != '#'){
		sum = 0;
		for(int i=0; i &lt; strlen(str); i++)
			if(str[i] != ' ') sum += (i + 1) * ]]></description><category></category></item><item><title><![CDATA[poj3006 Dirichlet‘s Theorem on Arithmetic Progressions（质数，空间换时间）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108909941</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108909941</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 14:15:40 +0800</pubDate><description><![CDATA[题意：
一个序列a, a+d,a+2d,……,a+nd;
给定a,d,n，找出第n个素数
有了之前的经验，直接空间换时间
#include&lt;cstdio&gt;
#include&lt;string.h&gt;
#include&lt;algorithm&gt;
#include&lt;cmath&gt;
#define MAXN 1000000
using namespace std;

bool is_primes[MAXN];//判断质数 
int primes[MAXN];//质数数组，从1开]]></description><category></category></item><item><title><![CDATA[poj1503 Integer Inquiry（大数）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108909856</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108909856</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 14:01:55 +0800</pubDate><description><![CDATA[用的模板
直接贴代码
#include &lt;vector&gt;
#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;iomanip&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;

using namespace std;
 
//大数
struct BigInteger
{
    static const int BASE = 100000000; //和WID]]></description><category></category></item><item><title><![CDATA[poj2262 Goldbach‘s Conjecture（质数，空间换时间）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108909519</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108909519</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 13:19:06 +0800</pubDate><description><![CDATA[题意：验证哥德巴赫猜想，一个偶数是否能被两个素数相加，如果能输出两者差最大的两个。
第一遍的代码，先打一遍质数表，再用双指针法搜（要判断的量太多，超时）
没有意识到已经打了bool表，可以直接判断（经验不足）
#include&lt;cmath&gt;
#include&lt;cstdio&gt;
#include&lt;algorithm&gt;
#include&lt;iostream&gt;
#include&lt;string.h&gt;
#define MAXN 1000000
using nam]]></description><category></category></item><item><title><![CDATA[poj1083Moving Tables（思维，样例具有多重欺骗性）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108908199</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108908199</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 10:21:28 +0800</pubDate><description><![CDATA[题目大意：如图所示在一条走廊的两侧各有200个房间，现在给定一些成对的房间相互交换桌子，但是走廊每次只能通过一组搬运，
也就是说如果两个搬运过程有交叉是不能同时搬运的，要依次来，一次搬运10min，问完成所有的搬运的最少用时。
解题思路：考虑每个房间有多少搬运过程需要经过，我们截取最大的房间经过的次数就可以了，挺锻炼思维的一道题。
注意：

这个思路我第一时间就想到了，但在脑海里过了一遍，觉得漏洞颇多，没有采用。其实应当在纸上画一遍，所谓的漏洞并不存在，只是我思维的死角罢了。
此题虽为水题，样例却颇具欺骗性]]></description><category></category></item><item><title><![CDATA[poj2100 Graveyard Design（尺取法，STL）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108907935</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108907935</guid><author>For_ACM</author><pubDate>Sat, 03 Oct 2020 09:42:25 +0800</pubDate><description><![CDATA[**题意：**找到某一个区间使得区间内的数的平方和等于某一给定值k。
要用到双重pair，书写的格式得注意
思路和poj2739基本一样

]]></description><category></category></item><item><title><![CDATA[poj2566 Bound Found（尺取法：子串和为非单调序列，模板）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108905451</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108905451</guid><author>For_ACM</author><pubDate>Fri, 02 Oct 2020 22:09:23 +0800</pubDate><description><![CDATA[题目大意
给定一组包含n个整数的数列和k个询问，求取一个子串，使得该***连续子串***的***和的绝对值***最接近t
注：暴力求解必定超时
解题思路

由于要求取一个连续子串的部分和（和为非单调数列，若是单调数列，可不求和，直接算），这让我们想到了记录前缀和sum的方式来在O(1)内求得任意子串的和。
对于子串问题的处理，为了避免暴力双重循环，我们往往使用尺取法（双指针法），就像是在字符串匹配问题时的那样。当然，其他的方法（如DP）也经常用来处理子串问题，最经典的有最长上升子序列。
在使用双指针法时，要]]></description><category></category></item><item><title><![CDATA[poj3320 Jessica‘s Reading Problem（尺取法，STL）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108903528</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108903528</guid><author>For_ACM</author><pubDate>Fri, 02 Oct 2020 17:53:51 +0800</pubDate><description><![CDATA[程序 = 算法 + 数据结构
这道题没那俩STL真没法做（map &amp;&amp; set）（映射和集合）
此外，本题用cin &amp;&amp; cout 会超时！！！
以后还是老老实实用 scanf &amp;&amp; printf 吧
题目的本质还是简单的，就是根据那个模板稍微改了一下
#include &lt;iostream&gt;
#include &lt;cstdio&gt;
#include &lt;algorithm&gt;
#include &lt;map&gt;
#includ]]></description><category></category></item><item><title><![CDATA[poj3061 Subsequence（尺取法，模板）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108902203</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108902203</guid><author>For_ACM</author><pubDate>Fri, 02 Oct 2020 15:18:42 +0800</pubDate><description><![CDATA[最基本的尺取法
尺取无序数列
#include&lt;algorithm&gt;
#include&lt;iostream&gt;
#define INF 0x3f3f3f3f 

using namespace std;

int t, n, s;
int a[100005];

int main()
{
	cin&gt;&gt;t;
	while(t--)
	{
		cin&gt;&gt;n&gt;&gt;s;
		for(int i = 1; i &lt;= n; i++) cin&gt;&gt;a[]]></description><category></category></item><item><title><![CDATA[poj2739 Sum of Consecutive Prime Numbers（尺取法，质数）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108900801</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108900801</guid><author>For_ACM</author><pubDate>Fri, 02 Oct 2020 11:26:05 +0800</pubDate><description><![CDATA[暴力枚举超时了，
这个尺取法蛮基础的
这个质数的写法可以作为模板，蛮全面的
bool is_primes[MAXN];//判断质数 
int primes[MAXN];//质数数组，从0开始 
int prime_count;//质数数量 
 
void GetPrimes(int n){
    int k = 0;
    memset(is_primes, true, sizeof(is_primes));
    for (int i = 2; i &lt;= n; i++){
        if]]></description><category></category></item><item><title><![CDATA[poj2159 Acient Cipher（暴力）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108897327</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108897327</guid><author>For_ACM</author><pubDate>Thu, 01 Oct 2020 21:25:14 +0800</pubDate><description><![CDATA[审题出了点问题，思维定式了，每一个字母的密码加减不一定是一样的，题目没说，只不过举例举的这样而已
string的头文件出了点问题，cin&gt;&gt;str要用#include（poj上才能过），而memset却要用#include&lt;string.h&gt;（电脑上才能过）
#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;string&gt;
#include&lt;string.h&gt; 
#include&lt;algor]]></description><category></category></item><item><title><![CDATA[poj3299 Humidex（公式直接算）]]></title><link>https://blog.youkuaiyun.com/For_ACM/article/details/108892951</link><guid>https://blog.youkuaiyun.com/For_ACM/article/details/108892951</guid><author>For_ACM</author><pubDate>Thu, 01 Oct 2020 08:16:14 +0800</pubDate><description><![CDATA[水题
有一丢丢技巧的输入，再带上三个个公式的计算
代码思路和格式蛮漂亮的，可以借鉴
#include&lt;iostream&gt;
#include&lt;cmath&gt;
#define exp 2.718281828
using namespace std;

double geth(double t,double d){
	double h,e;
	e=6.11*pow(exp,5417.7530*((1/273.16)-(1/(d+273.16))));
	h=0.5555*(e-10);
	r]]></description><category></category></item></channel></rss>