<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Kama的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Gonhz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Gonhz]]></copyright><item><title><![CDATA[Matrix HDU - 7113 “红旗杯”第十五届东北地区大学生程序设计竞赛]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/120115461</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/120115461</guid><author>Gonhz</author><pubDate>Sun, 05 Sep 2021 15:22:18 +0800</pubDate><description><![CDATA[Matrix HDU - 7113
题目链接
公式推导：

考虑i这个数对答案的贡献。首先，先在n2−in^2-in2−i中比i大的数当中选择n−1n-1n−1个数，和它放在同一行，就是Cn2−in−1C_{n^2-i}^{n-1}Cn2−in−1​。这个数可以的行有个n行可以选择。然后这个数所在的这一行全排列就是n!n!n!,最后剩下的所有数全排列就是(n2−n)!(n^2-n)!(n2−n)!
所以最后答案等于：
∑i=1i=nCn2−in−1∗n∗n!∗(n2−n)!
\sum_{i=1}^{i=n}]]></description><category></category></item><item><title><![CDATA[Maximum width CodeForces - 1492C 总结]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/114480832</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/114480832</guid><author>Gonhz</author><pubDate>Sun, 07 Mar 2021 11:59:43 +0800</pubDate><description><![CDATA[文章目录Maximum width CodeForces - 1492C题目大意：分析AC代码：
Maximum width CodeForces - 1492C
题目链接
题目大意：
  就是要求一个递增的序列，满足S[p[i]]=t[i]。然后使得p[i]-p[i-1]最大。
分析
  可以发现对于t字符串中的每个字符，在算与前一个字符所映射的值的差时，映射到后面要越靠后的位置越好。在算与后一个字符所映射的值得差时，映射到后面要越靠前的位置越好。
  所以我们可以尝试去算出t中每个字符合法的最小的位置与]]></description><category></category></item><item><title><![CDATA[用python folium库画地图 在地图上画圆 模板 记录]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/113748269</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/113748269</guid><author>Gonhz</author><pubDate>Tue, 09 Feb 2021 03:51:49 +0800</pubDate><description><![CDATA[需求
 &amp;enps;给出所有的经纬度表示发现黄蜂的位置，然后给出巢的位置，在地图上标记位置并且以8km为半径画圆,标出预测点
这里直接给出数据:
所有点数据：


预测点直接写在代码里面了
蜂巢数据：
lat,lon
49.149394,-123.943134
49.025831,-122.810653
48.980994,-122.688503
49.060215,-122.641648
48.777534,-122.418612
48.927519,-122.745016
48.983375,-]]></description><category></category></item><item><title><![CDATA[AcWing156 矩阵 求大矩阵中小矩阵存在性问题 二维哈希 详解、推导]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/112299227</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/112299227</guid><author>Gonhz</author><pubDate>Wed, 06 Jan 2021 22:22:59 +0800</pubDate><description><![CDATA[AcWing156 矩阵 二维哈希 详解
题目链接
讲解
  实际上就是把一维Hash推广到二维矩阵上的Hash。
  我们知道一维的Hash过程即把一段字符串Hash为一个p进制的数。比如字符串101110111011，那么Hash出来就是1∗p3+0∗p2+1∗p1+1∗p01*p^3+0*p^2+1*p^1+1*p^01∗p3+0∗p2+1∗p1+1∗p0，用s=s∗p+s[i]s=s*p+s[i]s=s∗p+s[i]，从小到大乘就可以了。
  讨论完了一维的情况，二维矩阵的Hash，比如一个 3*2]]></description><category></category></item><item><title><![CDATA[Codeforces Round #694 (Div. 2) A,B,C 总结&题解]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/112259960</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/112259960</guid><author>Gonhz</author><pubDate>Wed, 06 Jan 2021 11:14:40 +0800</pubDate><description><![CDATA[A题 Strange Partition
  仔细思考可以发现其实最大的策略就是每个都去向上整除，最小的策略就是先求和再向上整除，因为你一旦能够凑成倍数，那么对你来说是亏的。
代码
#include &lt;ctime&gt;
#include &lt;cstdlib&gt;
#include&lt;iostream&gt;
#include&lt;algorithm&gt;
#include&lt;math.h&gt;
#include&lt;cstdio&gt;
#include&lt;string&g]]></description><category></category></item><item><title><![CDATA[解决在运行devc++，vscode，visual studio，写c++文件运行后window Denfender需要进行安全扫描]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/108805267</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/108805267</guid><author>Gonhz</author><pubDate>Fri, 25 Sep 2020 22:37:14 +0800</pubDate><description><![CDATA[   在出现问题
后依次打开：
vent Viewer&gt;应用程序和服务日志&gt;Microsoft&gt;Windows&gt;Windows Defender&gt;Operational
点开可以看到
发现是defender 把那个识别为了有问题的文件。
解决办法
  解决办法很简单，把那个文件所在文件夹加入windows Defender 中病毒和威胁防护中的排除项就行了。(具体不会的话百度)。添加形式选择文件夹添加。

最后如果用visual studio写c++也出现这个问题可以参考这个链]]></description><category></category></item><item><title><![CDATA[Omkar and Circle CodeForces - 1372D (前缀，化圆为直)]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/108142169</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/108142169</guid><author>Gonhz</author><pubDate>Fri, 21 Aug 2020 10:36:32 +0800</pubDate><description><![CDATA[Omkar and Circle CodeForces - 1372D ]
题目链接
分析：
  最开始想的一直替换最小的但这样并不能保证最大，比如数据:8 2 1 3 8。然后想了一下合并的过程相当于要从n个数中踢去n/2个数，然后使得总和最大。只有踢不相邻的两个数，才不会多踢数。所以题目相当于从n个数中踢去n/2个不相邻的数。
  接着举一个例子，比如5 4 3 2 1这组数据将其首尾连接（画圆为直）。
  先看这个表格，后面会解释




下标
1
2
3
4
5
6
7
8
9
10




ai
]]></description><category></category></item><item><title><![CDATA[EXTENDED LIGHTS OUT POJ - 1222 详解（高斯消元异或方程组，构造）]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/108063254</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/108063254</guid><author>Gonhz</author><pubDate>Mon, 17 Aug 2020 21:32:09 +0800</pubDate><description><![CDATA[题目链接
题目大意
  给定一个5*6的0 1 矩阵，0代表灯灭，1代表灯亮，按下一个灯时，那个灯和上下左右附近的灯会随着那个灯往目前灯相反的状态改变。最后要使得所有灯灭。输出一个0 1矩阵表示所相应位置的灯按还是不按。
分析
  拿一个3*3的矩阵作为例子：
设灯的初始矩阵L，也就是初始的状态为
L=[100010000]
 L=\begin{bmatrix}
   1 &amp; 0 &amp; 0 \\
   0 &amp; 1 &amp; 0 \\
   0 &amp; 0 &amp; 0
  \e]]></description><category></category></item><item><title><![CDATA[1398C - Good Subarrays]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/108057092</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/108057092</guid><author>Gonhz</author><pubDate>Mon, 17 Aug 2020 15:37:52 +0800</pubDate><description><![CDATA[  比赛的时候没想出O(n)的解法，之后看了下别人写的博客。感觉有点巧妙。感觉是道好题（可能是我太菜了）。
分析：
  很自然想到前缀和。假设y&gt;=xy&gt;=xy&gt;=x,即题目要求对于区间[x,y]使得等式
sum[y]−sum[x−1]=y−(x−1)sum[y]-sum[x-1]=y-(x-1)sum[y]−sum[x−1]=y−(x−1)成立。
然后移项可得
sum[y]−y=sum[x−1]−(x−1)sum[y]-y=sum[x-1]-(x-1) sum[y]−y=sum[x−1]]]></description><category></category></item><item><title><![CDATA[2020牛客多校9 Groundhog Looking Dowdy （尺取）]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/107923593</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/107923593</guid><author>Gonhz</author><pubDate>Mon, 10 Aug 2020 23:13:25 +0800</pubDate><description><![CDATA[Groundhog Looking Dowdy
题目链接
分析：
  要选出来dowdiness的极值最小，可以先对所有的衣服的dowdiness值从小到大排序，然后用m作为标准尺取，每次保证尺取到的m件衣服保证来自不同的天里，用一个vis数组标记这天是不是已经被选过了。在尺取右移过程中，如果某天被选过了，那么这天就不选（因为数据从小到大排序，如果把这天替换到更小的那天，那么极值不可能变小）。具体实现见下面代码。
ac代码
#include &lt;ctime&gt;
#include &lt;cstdli]]></description><category></category></item><item><title><![CDATA[c++利用多态替代switch语句的模板示例]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/106770785</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/106770785</guid><author>Gonhz</author><pubDate>Mon, 15 Jun 2020 20:49:24 +0800</pubDate><description><![CDATA[利用多态替代Switch语句的模板示例
直接上代码。
#include &lt;stdio.h&gt;
class Context;
class State
{
public:
    State() {}
    virtual ~State() {}
    virtual void showMessage() = 0;
};

class MessageOne :public State
{
public:
    MessageOne() {}
    ~MessageOne() {}
    vo]]></description><category></category></item><item><title><![CDATA[Lost Cows POJ - 2182  树状数组讲解&学习（附模板例题讲解）]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/105949006</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/105949006</guid><author>Gonhz</author><pubDate>Thu, 07 May 2020 22:55:08 +0800</pubDate><description><![CDATA[题目链接

]]></description><category></category></item><item><title><![CDATA[c++ unique 函数的用法 （模板）]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/105921454</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/105921454</guid><author>Gonhz</author><pubDate>Mon, 04 May 2020 18:44:34 +0800</pubDate><description><![CDATA[stl c++ unique 函数
实例：
头文件:#include &lt;algorithm&gt;

  该函数是把相邻重复的元素中的一个扔到后面。返回值为“去重之后”最后一个不重复元素的下一个位置的迭代器。
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
int main(){
    in...]]></description><category></category></item><item><title><![CDATA[A Simple Problem with Integers POJ - 3468 线段树学习-lazy标签 模板]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/105916334</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/105916334</guid><author>Gonhz</author><pubDate>Mon, 04 May 2020 14:37:22 +0800</pubDate><description><![CDATA[题目链接
#include&lt;iostream&gt;
#include&lt;algorithm&gt;
#include&lt;math.h&gt;
#include&lt;cstdio&gt;
#include&lt;string&gt; 
#include&lt;string.h&gt;
#include&lt;list&gt;
#include&lt;queue&gt;
#inclu...]]></description><category></category></item><item><title><![CDATA[CodeForces - 1312E Array Shrinking(区间dp)（通俗易懂）]]></title><link>https://blog.youkuaiyun.com/Gonhz/article/details/105361300</link><guid>https://blog.youkuaiyun.com/Gonhz/article/details/105361300</guid><author>Gonhz</author><pubDate>Tue, 07 Apr 2020 12:10:31 +0800</pubDate><description><![CDATA[CodeForces - 1312E Array Shrinking(区间dp)
题目链接：
没做出来，看了一下别人的题解，才A掉。但网上没发现一篇讲得比较易懂的题解，所以就准备写一篇再加上我自己的理解。
题目分析：区间dp，合并用val[i][j]表示在i到j区间内尽可能多的合并后最后的那个数，然后dp[i][j]表示在i到j区间内尽可能多的合并后的最小长度。
所以转移方程：
dp[i][j]=...]]></description><category></category></item></channel></rss>