<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[脑白金刚的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/WangJunchengno2</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WangJunchengno2]]></copyright><item><title><![CDATA[简单搜索 Find The Multiple]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/81056725</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/81056725</guid><author>WangJunchengno2</author><pubDate>Sun, 15 Jul 2018 20:46:58 +0800</pubDate><description><![CDATA[ 

Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and th...]]></description><category></category></item><item><title><![CDATA[简单搜索 棋盘问题]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80968194</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80968194</guid><author>WangJunchengno2</author><pubDate>Mon, 09 Jul 2018 12:16:10 +0800</pubDate><description><![CDATA[在一个给定形状的棋盘（形状可能是不规则的）上面摆放棋子，棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列，请编程求解对于给定形状和大小的棋盘，摆放k个棋子的所有可行的摆放方案C。

输入 
输入含有多组测试数据。 
每组数据的第一行是两个正整数，n k，用一个空格隔开，表示了将在一个n*n的矩阵内描述棋盘，以及摆放棋子的数目。 n &amp;lt;= 8 , k &amp;lt;= n 
当...]]></description><category></category></item><item><title><![CDATA[HDU1166 敌兵布阵（最简单的线段树）]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80172442</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80172442</guid><author>WangJunchengno2</author><pubDate>Wed, 02 May 2018 21:38:03 +0800</pubDate><description><![CDATA[线段树通用的几个函数：

build()（建树）、pushup()（更新父节点）、pushdown()（用到lazy标记时使用）

其他的单点更新、区间更新以及返回区间值等等，其内部代码原理都是差不多的。

AC代码：


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
using namespa...]]></description><category></category></item><item><title><![CDATA[JAVA大数逆序]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80155494</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80155494</guid><author>WangJunchengno2</author><pubDate>Tue, 01 May 2018 12:22:15 +0800</pubDate><description><![CDATA[最近看了很多java大数的博客，基础的东西很多大牛都写过了，我就补一点逆序的小方法。


import java.util.*;
import java.math.*;
public class Main{
	public static void main(String args[]) {
		Scanner cin = new Scanner(System.in);
		BigInteger a...]]></description><category></category></item><item><title><![CDATA[POJ 3264]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80084583</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80084583</guid><author>WangJunchengno2</author><pubDate>Wed, 25 Apr 2018 19:48:48 +0800</pubDate><description><![CDATA[很简单的线段树题。

上代码：


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
using namespace std;
const int maxn = 50010;
struct stuff{
    int mx,mi;
    in...]]></description><category></category></item><item><title><![CDATA[超好用的小函数：min_element和max_element]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80070720</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80070720</guid><author>WangJunchengno2</author><pubDate>Tue, 24 Apr 2018 21:08:49 +0800</pubDate><description><![CDATA[转来的，留着以后用。头文件：#include&amp;lt;algorithm&amp;gt;作用：返回容器中最小值和最大值。max_element(first,end,cmp);其中cmp为可选择参数!#include&amp;lt;iostream&amp;gt;  
#include&amp;lt;algorithm&amp;gt;  
using namespace std;  
  
bool cmp(int a,int b)  
{...]]></description><category></category></item><item><title><![CDATA[大数组合--卢卡斯定理]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80022265</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/80022265</guid><author>WangJunchengno2</author><pubDate>Fri, 20 Apr 2018 18:03:15 +0800</pubDate><description><![CDATA[组合数我们用Cxx来表示，一切尽在代码中。。。

简单说就是一行代码来回捣鼓：


lucas(n, m)%p  =  lucas(n/p, m/p)*C(n%p, m%p)%p


/*
    这个是干啥用的呢，有这么一类题，让你求个C54，呵呵简单。
    but，我数据范围给你1~1e18，你怎么说！
    woc，你tm在玩我，ok你给我这么大数据，无论如何long long都放不开...]]></description><category></category></item><item><title><![CDATA[HDU1540  Tunnel Warfare]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79994697</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79994697</guid><author>WangJunchengno2</author><pubDate>Wed, 18 Apr 2018 18:35:48 +0800</pubDate><description><![CDATA[比较简单的线段树的区间合并（比旅馆的稍微要考虑的东西要多一点）。

先放代码：


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
#include &amp;lt;algorithm&amp;gt;
#include &amp;lt;stack&amp;gt;
using namespace std;
const int ma...]]></description><category></category></item><item><title><![CDATA[关于扩展欧几里得算法]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79645128</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79645128</guid><author>WangJunchengno2</author><pubDate>Wed, 21 Mar 2018 20:27:25 +0800</pubDate><description><![CDATA[欧几里得算法：用来求最小公倍数的一个简单的递归函数。扩展欧几里得算法：用来求ax+by = gcd(a,b)（为什么是gcd(a,b)，我们后面会讲）这个式子中x和y的一对整数解（不是唯一，还有其他的xy解）。例如：6x+15y=3，这里的3恰好是gcd(6,15)，所以算出来的x,y解就是这个式子的一个合理解。但是只求一组解有时远远不够，而且为了省时间，不妨将每个合理解之间的关系找出来，下面开始...]]></description><category></category></item><item><title><![CDATA[HDU 1753]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79614698</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79614698</guid><author>WangJunchengno2</author><pubDate>Mon, 19 Mar 2018 17:27:41 +0800</pubDate><description><![CDATA[带小数点的大数加法，思路：1、记录小数点的位置，然后把他去掉，因为带小数点遇到进位不好算。2、按照大数加法，将没有小数点的大数加起来。（加的过程中如果记录到小数点位置，就把小数点加上）3、把小数部分多余的0去掉。

代码：


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
#include &amp;lt;cstring&amp;gt;
using names...]]></description><category></category></item><item><title><![CDATA[大数减法]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79570070</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79570070</guid><author>WangJunchengno2</author><pubDate>Thu, 15 Mar 2018 16:40:16 +0800</pubDate><description><![CDATA[之前更新了大数加法，减法相比较于加法，要注意的东西多了一些，拿a-b举例

比如：1.a和b的位数大小，如果a&amp;gt;b，那么直接减；如果a&amp;lt;b，就换成b-a，最后输出一个'-'

          2.如果a、b的位数相同，比较一下数的大小，道理同上。

          3.进位，一旦差出现负数，则向上借1，如果是0，继续借，直到借成，顺便把中间的0更新成9.（如果是100005，要...]]></description><category></category></item><item><title><![CDATA[HDU 1003 Max Sum]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79569820</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79569820</guid><author>WangJunchengno2</author><pubDate>Thu, 15 Mar 2018 16:28:16 +0800</pubDate><description><![CDATA[最大子序列和。

动态规划思想，算基础的DP了，先放代码，再讲解：


#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cstdio&amp;gt;
using namespace std;
const int maxn = 100010;
int mx, be, en;
int num[maxn];
int main()
{
    int t, n, i, pt, x =...]]></description><category></category></item><item><title><![CDATA[HDU 1002 A + B Problem II]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79569648</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79569648</guid><author>WangJunchengno2</author><pubDate>Thu, 15 Mar 2018 16:16:55 +0800</pubDate><description><![CDATA[大数加法，算是大数运算里最简单的，注意进位就OK了。

思路大概是用字符串储存大数，然后把大数倒置并用整型数组储存，然后位对位加起来就行了。

但这个题会有一些很刁钻的数据比如：00000+000，00001+00100等等类似的数据所以还需要在处理基本的加法前，把无意义的0去掉，这一步可以加在储存大数的倒置之前，也可以加在最终输出和的过程中（因为这些无意义的0对加法本身没有影响，但如果是减法的话...]]></description><category></category></item><item><title><![CDATA[HDU2066 一个人的旅行（SPFA）]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79294876</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79294876</guid><author>WangJunchengno2</author><pubDate>Fri, 09 Feb 2018 08:17:48 +0800</pubDate><description><![CDATA[这个题相比较于一般的SPFA，还多加了一步草儿的家与图上的一些点相连，且距离为0。所以我们用链式前向星先来储存不连接图中点与 草儿的家 的边，然后再储存连接图中点与 草儿的家 的边。然后用SPFA来找出每个点到草儿的家的对短距离就OK了。（多亏题目给的点是1到1000，这样就可以把 草儿的家 设为0）

下面是AC代码（因为题目没有考虑负环，所以就没有进行负环的判断）：

 


#include...]]></description><category></category></item><item><title><![CDATA[Kruskal算法]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79138318</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79138318</guid><author>WangJunchengno2</author><pubDate>Tue, 23 Jan 2018 12:58:54 +0800</pubDate><description><![CDATA[关于最小生成树的一种算法，刚刚学习，试着写了一个代码，如有漏洞，请多包涵。

关于Kruskal算法简单解释一下，首先在一个图中，有很多点，同时也有很多边把这些点连起来。

因为每条边都有长度，所以要想求得如何用最小边把所有点连起来，就可以先把边按照从小到大排起来，然后遍历这些边。

但是问题来了，如果有4个点恰好可以被4条最短边连成一个圈的话，就会出现错误，所以要对每个点使用并查集，每遍历一条边...]]></description><category></category></item><item><title><![CDATA[HDU 1358 Period]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79113853</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79113853</guid><author>WangJunchengno2</author><pubDate>Sat, 20 Jan 2018 14:06:38 +0800</pubDate><description><![CDATA[做这个题前，依然需要引入两个公式：是否是循环节（i % (i - next[i]) == 0）和循环部分的长度（i - next[i]）。

 

For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we wan...]]></description><category></category></item><item><title><![CDATA[HDU Count the string]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79105675</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79105675</guid><author>WangJunchengno2</author><pubDate>Fri, 19 Jan 2018 19:32:01 +0800</pubDate><description><![CDATA[在做这个题之前，有一个很有意思的点，举个例子：ababab这个字符串的next数组是-1 0 0 1 2 3。

但是在getnext函数中，对next进行赋值的部分是next[++i] = ++j，也就是说每一次进入循环的i和在此次循环中next[i]的i是相差1的。

所以就说在-1 0 0 1 2 3的后面还有一个针对整个字符串的next[len] = 4（len是字符串长度）。

这个4就...]]></description><category></category></item><item><title><![CDATA[HDU 2087 剪花布条]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79104851</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79104851</guid><author>WangJunchengno2</author><pubDate>Fri, 19 Jan 2018 11:30:32 +0800</pubDate><description><![CDATA[KMP水题：

 

一块花布条，里面有些图案，另有一块直接可用的小饰条，里面也有一些图案。对于给定的花布条和小饰条，计算一下能从花布条中尽可能剪出几块小饰条来呢？ 

Input

输入中含有一些数据，分别是成对出现的花布条和小饰条，其布条都是用可见ASCII字符表示的，可见的ASCII字符有多少个，布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符，则不再进行工作...]]></description><category></category></item><item><title><![CDATA[SDNUOJ 1011]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79072328</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/79072328</guid><author>WangJunchengno2</author><pubDate>Tue, 16 Jan 2018 10:57:26 +0800</pubDate><description><![CDATA[开始以为是排列组合，直到看到是不同的球和不同的盒，所以没法用简单的排列组合来完成，于是百度，发现了“斯特林数”，专门解决组合的问题。借鉴了这个博客：http://blog.youkuaiyun.com/sr_19930829/article/details/40888349

终于AC：

 


#include&amp;lt;iostream&amp;gt;
#include&amp;lt;cstdio&amp;gt;
#include...]]></description><category></category></item><item><title><![CDATA[SDNU 1094]]></title><link>https://blog.youkuaiyun.com/WangJunchengno2/article/details/78751751</link><guid>https://blog.youkuaiyun.com/WangJunchengno2/article/details/78751751</guid><author>WangJunchengno2</author><pubDate>Fri, 08 Dec 2017 15:06:19 +0800</pubDate><description><![CDATA[Description

There is an analog clock with two hands: anhour hand and a minute hand. The two hands form an angle. The angle is measuredas the smallest angle between the two hands. The angle between th...]]></description><category></category></item></channel></rss>