<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dingyangdi3490的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dingyangdi3490</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dingyangdi3490]]></copyright><item><title><![CDATA[欧拉函数入门]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756851</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756851</guid><author>dingyangdi3490</author><pubDate>Fri, 27 Sep 2019 20:32:00 +0800</pubDate><description><![CDATA[欧拉函数：小于x的整数中与x互质的数的个数，一般用φ(x)表示，φ(1)=1
计算公式：φ(x)=x*(1-1/p1)(1-1/p2)...(1-1/pn)，其中x的所有素因子数分别为p1，p2，p3，...，pn.
常用性质：1.对于素数p，φ(p) = p-1，φ(pk) = pk-pk-1
　　　　　2.当gcd(n,m) = 1时，φ(n*m) =φ(n) *φ(m)...]]></description><category></category></item><item><title><![CDATA[Good Morning]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756857</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756857</guid><author>dingyangdi3490</author><pubDate>Tue, 24 Sep 2019 19:52:00 +0800</pubDate><description><![CDATA[题目链接：Good Morning
题目大意：按键盘上的数字，只能在此位置的基础上往右往下按，要求输出与所给值差的绝对值最小的数
AC代码如下：

 1 #include &lt;iostream&gt;
 2 #include &lt;cstdio&gt;
 3 #include &lt;cstring&gt;
 4 #include &lt;string&gt;
 5...]]></description><category></category></item><item><title><![CDATA[求逆元算法]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756847</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756847</guid><author>dingyangdi3490</author><pubDate>Sat, 14 Sep 2019 22:31:00 +0800</pubDate><description><![CDATA[费马小定理：若p是素数，a是正整数且不能被p整除，则ap-1 == 1(mod p)
费马小定理的拓展：ap == a(mod p)
欧拉定理：对任意互素的a和n. 设Φ(n) 为小于n且与n互素的正整数的个数，有aΦ(n) == 1(mod n)
欧拉定理的拓展：aΦ(n)+1 == a(mod n)

求乘法逆元的作用：除以一个数 再取模时，可以将这个数乘以这个数的逆元...]]></description><category></category></item><item><title><![CDATA[Manacher算法]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756840</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756840</guid><author>dingyangdi3490</author><pubDate>Tue, 10 Sep 2019 20:54:00 +0800</pubDate><description><![CDATA[1 /* */
 2 # include &lt;bits/stdc++.h&gt;
 3 using namespace std;
 4 # define MAXN 110000
 5 int dp[MAXN*2+5];
 6 char str[MAXN*2+5];
 7 int manacher(char *s)
 8 {
 9     int N=0;
...]]></description><category></category></item><item><title><![CDATA[Almost Sorted Array]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756856</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756856</guid><author>dingyangdi3490</author><pubDate>Tue, 10 Sep 2019 20:29:00 +0800</pubDate><description><![CDATA[题目链接：Almost Sorted Array
不用任何算法的做法：样例：1 3 6 5 7 8 9
　　　　　　　　　　　　　9 8 7 5 6 3 2
　　　　　　　　　　　　　2 7 1 1
AC代码：



 1 #include &lt;iostream&gt;
 2 #include &lt;cstdio&gt;
 3 #include &lt;cst...]]></description><category></category></item><item><title><![CDATA[最长不递减子序列]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756839</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756839</guid><author>dingyangdi3490</author><pubDate>Tue, 10 Sep 2019 20:14:00 +0800</pubDate><description><![CDATA[定义：在最长上升序列的基础上，允许相同的若干元素出现在子序列中
DP做法：


 1 //DP
 2 int LDNS(int a[], int n)
 3 {
 4     int DP[n];
 5     int Cnt=-1;
 6     memset(DP, 0, sizeof(DP));
 7     for(int i=0; i&lt;n; i++ ...]]></description><category></category></item><item><title><![CDATA[(LIS)最长上升序列（DP+二分优化）]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756852</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756852</guid><author>dingyangdi3490</author><pubDate>Tue, 10 Sep 2019 19:56:00 +0800</pubDate><description><![CDATA[求一个数列的最长上升序列
　　动态规划法：O(n^2)
　　　　　　　

 1 //DP
 2 int LIS(int a[], int n)
 3 {
 4     int DP[n];
 5     int Cnt=-1;
 6     memset(DP, 0, sizeof(DP));
 7     for(int i=0; i&lt;n; i++ )
 8...]]></description><category></category></item><item><title><![CDATA[I Count Two Three（打表+排序+二分查找）]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756836</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756836</guid><author>dingyangdi3490</author><pubDate>Thu, 05 Sep 2019 00:12:00 +0800</pubDate><description><![CDATA[I Count Two Three
二分查找用lower_bound
这道题用cin，cout会超时。。。
AC代码；


 1 /* */
 2 # include &lt;iostream&gt;
 3 # include &lt;cstring&gt;
 4 # include &lt;string&gt;
 5 # include &lt;cstdio&gt...]]></description><category></category></item><item><title><![CDATA[AC自动机入门经典题目（两种表达方式）]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756848</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756848</guid><author>dingyangdi3490</author><pubDate>Tue, 03 Sep 2019 20:07:00 +0800</pubDate><description><![CDATA[Keywords Search
指针方式：


  1 /* Keywords Search */
  2 # include &lt;iostream&gt;
  3 # include &lt;stdio.h&gt;
  4 # include &lt;string.h&gt;
  5 # include &lt;string&gt;
  6 # include &...]]></description><category></category></item><item><title><![CDATA[Balanced Ternary String（贪心+思维）]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756842</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756842</guid><author>dingyangdi3490</author><pubDate>Mon, 02 Sep 2019 17:18:00 +0800</pubDate><description><![CDATA[题目链接：Balanced Ternary String
题目大意：给一个字符串，这个字符串只由0,1,2构成，然后让替换字符，使得在替换字符次数最少的前提下，使新获得的字符串中0,1,2
　　　　　　这三个字符的数目相同，并且新获得的字符串的字典序要尽可能的小；
直接数组做法：暴力遍历


 1 /* */
 2 # include &lt;bits/stdc++.h&...]]></description><category></category></item><item><title><![CDATA[Doors Breaking and Repairing]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756843</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756843</guid><author>dingyangdi3490</author><pubDate>Sat, 31 Aug 2019 22:07:00 +0800</pubDate><description><![CDATA[题目链接：Doors Breaking and Repairing
题目大意：有n个门，先手攻击力为x（摧毁），后手恢复力为y（恢复），输入每个门的初始“生命值”，当把门的生命值攻为0时，就无法恢复了。问：最多可以把几个门的生命值攻为0。
思路：（1）当 x&gt;y 的时候肯定所有的门的生命值都能降为0；
　　　（2）当 x&lt;=y 的时候，先手的最优策略就是每次去攻击那些当...]]></description><category></category></item><item><title><![CDATA[Coffee Break]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756832</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756832</guid><author>dingyangdi3490</author><pubDate>Thu, 22 Aug 2019 10:03:00 +0800</pubDate><description><![CDATA[题目链接：Coffee Break Gym-101911A
题目大意：有一位员工想要利用喝咖啡来休息，他给了一个数组表示他想要喝咖啡的时间点（假设他喝咖啡用时1分钟），老板规定每次喝咖啡的时间间隔必须要大于d。问：他将给定数组的时间点都经
　　　　　　历一遍最少（贪心所在）需要多长时间，并输出每个时间点是在第几天经历的；
解题思路：贪心地选取喝咖啡的时间，我们尽量选取喝咖啡时间靠...]]></description><category></category></item><item><title><![CDATA[Glider（前缀和+二分）]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756838</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756838</guid><author>dingyangdi3490</author><pubDate>Thu, 22 Aug 2019 09:23:00 +0800</pubDate><description><![CDATA[题目链接：Glider Gym-101911B
解题分析：下落的高度一定，是h。在没有气流的地方每秒下落1；所以可以转化为经过无气流地带的时间总长为h。
　　　　　那么很显然从一个有气流地带的开始，选择下落，那么问题来了，一个一个去试然后一个一个计算他的路径去维护一个最大值吗？未免太过麻烦，所给数据有
　　　　　那么大。
解题关键：二分+前缀和
二分查找用：lower_boun...]]></description><category></category></item><item><title><![CDATA[Approximate Search]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756834</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756834</guid><author>dingyangdi3490</author><pubDate>Wed, 21 Aug 2019 21:18:00 +0800</pubDate><description><![CDATA[题目链接：Gym-101492H
动态规划，应该是比较基础的，可是自己就是不会QAQ....

 1 /* 把使用机会当成“花费” */
 2 # include &lt;iostream&gt;
 3 # include &lt;cstdio&gt;
 4 # include &lt;cstring&gt;
 5 # include &lt;string&gt;
 6 ...]]></description><category></category></item><item><title><![CDATA[Programming a robot]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756831</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756831</guid><author>dingyangdi3490</author><pubDate>Wed, 21 Aug 2019 19:38:00 +0800</pubDate><description><![CDATA[题目链接：Gym - 101492H
自己的纯暴力做法：



  1 /* */
  2 # include &lt;iostream&gt;
  3 # include &lt;cstdio&gt;
  4 # include &lt;cstring&gt;
  5 # include &lt;string&gt;
  6 # include &lt;cstd...]]></description><category></category></item><item><title><![CDATA[Brexit Gym - 101490C]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756830</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756830</guid><author>dingyangdi3490</author><pubDate>Wed, 21 Aug 2019 19:26:00 +0800</pubDate><description><![CDATA[题目链接：Brexit
vector的使用（vector存边），巧用queue，相当于Bfs

 1 /* */
 2 # include &lt;iostream&gt;
 3 # include &lt;cstdio&gt;
 4 # include &lt;cstring&gt;
 5 # include &lt;string&gt;
 6 # include &l...]]></description><category></category></item><item><title><![CDATA[Bacteria（优先队列）]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756829</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756829</guid><author>dingyangdi3490</author><pubDate>Sun, 18 Aug 2019 17:02:00 +0800</pubDate><description><![CDATA[题目链接：http://codeforces.com/gym/101911/problem/C
问题简述：给定n个细胞以及每个细胞的大小,相同的细胞能进行融合，如果能融合到只剩1个细胞则输出需要额外增加多少细胞才能把全部融合到只剩一个细胞，如果不能则输出-1.
问题分析：每融合一次都要排序，所以用优先队列。

 1 /* */
 2 # include &lt;iostream...]]></description><category></category></item><item><title><![CDATA[大数取余（大数模小数）]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756825</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756825</guid><author>dingyangdi3490</author><pubDate>Fri, 16 Aug 2019 23:40:00 +0800</pubDate><description><![CDATA[　　对于一些大数取余，可以利用模拟手算取余的方法进行计算。
　　e.g.有一个大数989565215785528545587（大数）对10003（小数）取余，需要将该大数从最左端开始对10003取余；
　　　　start:
　　　　　　9%10003==9;
　　　　　　(9*10+8)%10003==98;
　　　　　　(98*10+9)%10003==989;
　　　　　...]]></description><category></category></item><item><title><![CDATA[数论之扩展欧几里德相关模板]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756821</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756821</guid><author>dingyangdi3490</author><pubDate>Wed, 14 Aug 2019 21:26:00 +0800</pubDate><description><![CDATA[拓展欧几里得公式：


typedef long long LL;
LL exgcd(LL a,LL b,LL &amp;x,LL &amp;y){
     if(a==0&amp;&amp;b==0) return -1;
     if(b==0) { x=1;y=0; return a;  }
     LL d=exgcd(b,a%b,y,x);
     y...]]></description><category></category></item><item><title><![CDATA[TEX Quotes]]></title><link>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756819</link><guid>https://blog.youkuaiyun.com/dingyangdi3490/article/details/101756819</guid><author>dingyangdi3490</author><pubDate>Sun, 11 Aug 2019 16:55:00 +0800</pubDate><description><![CDATA[题目链接：https://cn.vjudge.net/problem/UVA-272
AC代码：


 1 /* */
 2 #include &lt;iostream&gt;
 3 #include &lt;stdio.h&gt;
 4 #include &lt;string.h&gt;
 5 #include &lt;cmath&gt;
 6 #include &l...]]></description><category></category></item></channel></rss>