<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ZCH1901的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ZCH1901</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZCH1901]]></copyright><item><title><![CDATA[实验2：栈的应用]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/147089467</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/147089467</guid><author>ZCH1901</author><pubDate>Wed, 09 Apr 2025 17:00:00 +0800</pubDate><description><![CDATA[1、理解栈和队列的概念和抽象类型定义。2、掌握栈和队列的基本操作。3、综合应用栈和队列解决问题。]]></description><category></category></item><item><title><![CDATA[51nod3128 小明爱上课]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/146059781</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/146059781</guid><author>ZCH1901</author><pubDate>Thu, 06 Mar 2025 09:56:41 +0800</pubDate><description><![CDATA[根据题意，对于每个课程，我们可以上 1 到 m 分钟的任何一种情况，但是这 1 到 m 分钟的情况不能叠加，那么就不是完全背包了，而且之后的课程可以叠加上去，那么对于每个课程的每一分钟，我们可以“并行”处理，意思就是对于每一分钟，我们把当前课程的所有情况在这一分钟的贡献都算出来，这样就保证了对于一个课程，我们只会使用它的一种情况，而且不影响后面课程的叠加，那么这就是分组背包了，时间复杂度。不同时长的奖励，题目数据中会给出。对于 100% 的数据， 1≤n≤100 ， 1≤m≤100 1≤奖励值≤1000。]]></description><category></category></item><item><title><![CDATA[51nod1034 骨牌覆盖 V3]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/145695976</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/145695976</guid><author>ZCH1901</author><pubDate>Tue, 18 Feb 2025 07:56:04 +0800</pubDate><description><![CDATA[在 m×n 的一个长方形方格中，用一个 1×2 的骨牌排满方格。问有多少种不同的排列方法。2 个数 n, m，中间用空格分隔 (2≤n,m≤100)解析和代码还是给会做的大佬来解决吧，我emo了，QAQ。例如： 3×2 的方格，共有 3 种不同的排法。]]></description><category></category></item><item><title><![CDATA[51nod3432 排列游戏]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/145680582</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/145680582</guid><author>ZCH1901</author><pubDate>Mon, 17 Feb 2025 13:19:22 +0800</pubDate><description><![CDATA[发现肯定有解，因为若极限情况 k=n−1 ，则 1,n,2,n−1,3,n−2 ，这样可以保证相邻两个数的差值都是不同的值，所以想到构造方法就是这样，构造完 n+1 个数，剩下的都让他相邻即可(即差值为 1)。注意如果 k 是偶数那最终从大到小，如果 k 是偶数那最终要由小到大构造。小 P 发现自己不会做了，请你帮帮他。（其中 1≤k<n≤。构造一个长度为 n 的排列。一行 n 个整数表示排列 p。小 P 非常喜欢摆弄排列。共有 k 种不同的取值。一行两个整数 n,k。]]></description><category></category></item><item><title><![CDATA[51nod3231 小明和二分图]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/145674053</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/145674053</guid><author>ZCH1901</author><pubDate>Mon, 17 Feb 2025 08:41:32 +0800</pubDate><description><![CDATA[(这里给出一个二分图的通俗定义：顶点集 V 可分割为两个互不相交的子集 A,B ，并且图中每条边依附的两个顶点都分属于这两个互不相交的子集，两个子集内的顶点不相邻，满足这样条件的图叫二分图。小明最近在学习二分图，由于小明现在还是初级阶段，什么都不会，这天小明的老师给小明这样一道题目，题目描述如下。根据二分图的定义，我们用 DFS 对图的顶点进行染色，第一个访问的点为白色，与白色相邻的点为黑色。（ 1≤n≤500 ， 1≤m≤70000 ）对于 100% 的数据， 1≤n≤500 ， 1≤m≤70000。]]></description><category></category></item><item><title><![CDATA[51nod1404 解码]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/145499340</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/145499340</guid><author>ZCH1901</author><pubDate>Fri, 07 Feb 2025 21:06:51 +0800</pubDate><description><![CDATA[其实可以这样理解，先从列中拿出2\*k根线，再从行中拿出2\*k根线，然后从内往外把行列一对一对配对，就可以得到一种方案。所以答案就是 c(n−1,2\*K)\*c(m−1,2\*k) .比较大，可以先对阶乘打个表，对答案进行字符串压缩一下。分别存( 1000000\*t)!按照代码的意思每次从一个矩形中拿出一个小矩形，一共拿 k 次有多少种方法。然后进行组合数求的时候要 O(1000000) 递推求解。对于每一组数据，输出。]]></description><category></category></item><item><title><![CDATA[51nod1170 组合数的最后K位]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/145498082</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/145498082</guid><author>ZCH1901</author><pubDate>Fri, 07 Feb 2025 16:53:57 +0800</pubDate><description><![CDATA[给出 M,N,K ，求 C(M,N) 的十进制表示的最后 K 位。例如 M=18,N=8,K=3 ， C(18,8)=18!=43758 ，最后 3 位数是 758。解析和代码还是由通过此题的大佬来解决吧，作者试了好几次都没过，QAQ。第 1 行： M。第 2 行： N。第 3 行： K。输出结果的后 K 位。]]></description><category></category></item><item><title><![CDATA[51nod5128 奶牛选美]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/139659563</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/139659563</guid><author>ZCH1901</author><pubDate>Thu, 13 Jun 2024 17:22:13 +0800</pubDate><description><![CDATA[听说最近三个斑点的奶牛最受欢迎，约翰立即购进了一批三斑点牛。不幸的是，时尚潮流往往变化很快，当前最受欢迎的牛变成了一斑点牛。约翰希望通过给每头奶牛涂色，使得它们身上的三个斑点能够合为一个斑点，让它们能够更加时尚。牛皮可用一个其中，表示斑点部分。如果两个在垂直或水平方向上相邻（对角相邻不算在内），则它们属于同一个斑点，由此看出上图中恰好有三个斑点。约翰牛群里所有的牛都有三个斑点。约翰希望通过使用油漆给奶牛尽可能少的区域内涂色，将三个斑点合为一个。在上面的例子中，他只需要给。]]></description><category></category></item><item><title><![CDATA[51nod2624 LTree2]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/132496744</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/132496744</guid><author>ZCH1901</author><pubDate>Fri, 25 Aug 2023 15:32:54 +0800</pubDate><description><![CDATA[你需要维护一棵个节点的树，每个节点有一个颜色，有个操作，每次修改一个位置的颜色，然后你需要在每次修改后输出树上所有简单路径的颜色数的和，（即所有二元组构成的树上简单路径）]]></description><category></category></item><item><title><![CDATA[51nod3234 小明爱配对]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124645103</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124645103</guid><author>ZCH1901</author><pubDate>Sun, 08 May 2022 10:59:22 +0800</pubDate><description><![CDATA[3234 小明爱配对

小明现在非常喜欢配对，这天有一队人(有男生也有女生)在小明面前排成了一排，每人都有一个技能值，老师给小明出了一道题目，让他来对这些人进行配对。配对有如下要求：

1. 相邻的男女才能进行配对。

2. 每次优先选择技能值差距最小的一对进行配对，如果不止有一对，那么选出最左边的那一对。

3.选出的人离开队列，空位由后面的人补上，这让原来不相邻的男女可能变成相邻的。

就这样一直选取，直到最后配对出现。这个问题难为住了小明，聪明的你可以帮助小明解决这个问题吗？

输入


第一行包括一]]></description><category></category></item><item><title><![CDATA[51nod3109 看电影]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124644995</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124644995</guid><author>ZCH1901</author><pubDate>Sun, 08 May 2022 10:53:54 +0800</pubDate><description><![CDATA[3109 看电影

这个世界上有很多叫小明的人，他们在不同的国家，不同国家有不同的语言，每一种语言有一个语言编号。

我们给出所有语言的编号，需要注意的是：每个国家的人除了可以懂自己国家的语言，也能懂编号相邻国家的语言，例如：语言编号为：1,7,10,5，其中：

母语编号为1，懂编号为1,5 的语言
母语编号为5，懂编号为1,5,7 的语言
母语编号为7，懂编号为5,7,10的语言
母语编号为10，懂编号为7,10 的语言

这个相邻编号指的并不是输入顺序，而是按照数字大小。同时我们还会...]]></description><category></category></item><item><title><![CDATA[51nod3241 小明和他的同学们]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124077111</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124077111</guid><author>ZCH1901</author><pubDate>Sun, 10 Apr 2022 13:54:42 +0800</pubDate><description><![CDATA[3241 小明和他的同学们

小明在全球数学竞赛获得了冠军，他很高兴，所以他想请他的同学吃巧克力，但是小明每天都很忙，只有x分钟的时间可以宴请同学们，现在小明有m个巧克力，小明要请n个同学吃巧克力，每个同学吃一块巧克力的时间都不一样，有的同学吃的快，有的同学吃的慢，每个同学吃完一块巧克力之后，马上就会去吃另外一个巧克力，假如2个人同时吃完，优先发给吃的快的同学。直到没有剩余的巧克力或者宴请时间结束了。

现在小明想要知道在宴请结束之后有几块巧克力被吃完，有几块巧克力没有被吃完，但是被吃了一些，聪明的你可以帮]]></description><category></category></item><item><title><![CDATA[51nod3225 小明和最短路]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124077051</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124077051</guid><author>ZCH1901</author><pubDate>Sun, 10 Apr 2022 13:50:02 +0800</pubDate><description><![CDATA[3225 小明和最短路

经过一段时间的修炼，小明已经成为最短路大师，最近他设计了这样一个问题。给定一个图，小明想要知道从s点到e点正好经过图里面k条边的最短路的长度是多少，聪明的你可以帮助小明解决这个问题吗？

输入


第一行输入两个整数n和k；
接下来n-1行，每行包含两个数x，y和w，表示x和y直接有一条长度为w的路径；
接下来一行输入两个整数s和e，表示起点和终点。

输出


输出一个整数，表示从s点到e点正好经过图里面k条边的最短路的长度，如果不存在这样一条道路，输出-1。

数据范围

..]]></description><category></category></item><item><title><![CDATA[51nod3137 圆形巧克力]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124034022</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124034022</guid><author>ZCH1901</author><pubDate>Fri, 08 Apr 2022 09:59:07 +0800</pubDate><description><![CDATA[3137 圆形巧克力

5.20到了，阿P的女朋友送了他一块特别特别大的巧克力（你可以认为是无限大的平面），巧克力上面有三个糖果，阿P喜欢吃巧克力，女朋友要求他吃掉以这三个糖果作为顶点的三角形（必须是非退化的三角形，即选出的点不能共线），吃掉这三个糖果组成的三角形的外接圆，请你帮忙计算一下阿P最多能吃到多少巧克力？

输入


多组数据
第一行一个整数case，表示数据组数
对于每组数据，第一行一个整数n，表示糖果的个数
接下来n行，每行两个数x y，表示一个糖果的坐标为(x,y)

输出


对于每组数据]]></description><category></category></item><item><title><![CDATA[51nod3425 中缀表达式求值]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124033652</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124033652</guid><author>ZCH1901</author><pubDate>Fri, 08 Apr 2022 09:49:46 +0800</pubDate><description><![CDATA[3425 中缀表达式求值

现在给你一个中缀表达式，式子中包括+-*/()六种运算符号，要求你求出这个中缀表达式的值。
中缀表达式：所谓中缀表达式就是我们平常写的算式，例如1+2、(1+2)*3,。

输入


输入一个中缀表达式。

输出


输出一行，表示表达式的值。
可使用以下语句保留固定长度的小数点后尾数
C++：cout&lt;&lt;setiosflags(ios::fixed)&lt;&lt;setprecision(6)&lt;&lt;ans&lt;&lt;endl;
C：printf("%]]></description><category></category></item><item><title><![CDATA[51nod3399 矩形的数量V7]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124033334</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124033334</guid><author>ZCH1901</author><pubDate>Fri, 08 Apr 2022 09:31:57 +0800</pubDate><description><![CDATA[3399 矩形的数量V7

小明有一个m*n的棋格，他想让你求出其中矩形的数量。但他不希望第u行第v列、第s行第t列的两个格子包含在矩形当中，请你帮帮他。 小明还希望你将得到的结果对1000000007取模。



输入


一行输入六个整数m,n,u,v,s,t。保证不选的两个格子不在同一位置。

输出


输出一个数，表示符合要求的矩形数量。结果对1000000007取模。

数据范围


对于100%的数据，1≤m,n≤10^9，0≤u,s≤m，0≤v,t≤n。

输入样例


4 3 3 3 2 2]]></description><category></category></item><item><title><![CDATA[51nod3398 矩形的数量V6]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/124033182</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/124033182</guid><author>ZCH1901</author><pubDate>Fri, 08 Apr 2022 09:24:32 +0800</pubDate><description><![CDATA[​​​​​​3398 矩形的数量V6

小明有一个m*n的棋格，他想让你求出其中矩形的数量。但他不希望第u行第v列的格子包含在矩形当中，请你帮帮他。小明还希望你将得到的结果对1000000007取模。



输入


一行输入四个整数m,n,u,v。

输出


输出一个数，表示符合要求的矩形数量。结果对1000000007取模。

数据范围


对于100%的数据，1≤m,n≤10^9，0≤u≤m，0≤v≤n。

输入样例


4 3 3 3

输出样例


42

解析:

利用容斥的思路，首先如果不考]]></description><category></category></item><item><title><![CDATA[51nod3404 后缀表达式(逆波兰表达式)]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/123867256</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/123867256</guid><author>ZCH1901</author><pubDate>Thu, 31 Mar 2022 11:23:41 +0800</pubDate><description><![CDATA[3404 后缀表达式(逆波兰表达式)

后缀表达式是一种把运算符后置的算术表达式，例如普通的表达式2 + 3的后缀表示法为2 3 +。后缀表达式的优点是运算符之间不必有优先级关系，也不必用括号改变运算次序，例如(2 + 3) * 4的后缀表示法为2 3 + 4 *。本题求解后缀表达式的值，其中运算符包括+ - * /四个。

计算后缀表达式，要从前向后遍历字符串。当遇见运算数时，压入栈中。当读到运算符时，将栈中的连续2个运算数弹栈；用当前运算符计算后（注意后缀表达式的先出栈的运算数，放在运算符后面；后出栈.]]></description><category></category></item><item><title><![CDATA[51nod2015 诺德街]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/123866984</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/123866984</guid><author>ZCH1901</author><pubDate>Thu, 31 Mar 2022 11:19:10 +0800</pubDate><description><![CDATA[2015 诺德街

又仁慈、又善良、又有钱的夹克老爷买下了一条街！
懂得经商的夹克老爷决定沿街开n个店铺，从南到北编号为1~n。经过紧张的筹备之后，诺德街的n个店铺同时开张了。由于刚开业，夹克老爷的人手不是非常足够，所以需要夹克老爷自己去干活。然而夹克老爷的手下们干活不积极，使得第i个店铺在每分钟都有pi的概率无人营业，且每分钟之间相互独立。于是夹克老爷从1号店铺出发向北走，当遇到第一个无人营业的店铺时就进去营业而停止移动。如果一直走到第n个店铺都有人营业，则原路返回，然后不停地来回走直到遇到一个无人营业的]]></description><category></category></item><item><title><![CDATA[51nod3155 跳房子]]></title><link>https://blog.youkuaiyun.com/ZCH1901/article/details/123866290</link><guid>https://blog.youkuaiyun.com/ZCH1901/article/details/123866290</guid><author>ZCH1901</author><pubDate>Thu, 31 Mar 2022 10:59:41 +0800</pubDate><description><![CDATA[3155跳房子

小华正在和她的小伙伴玩跳房子游戏。这是一个加强版的跳房子，每一行的格子数量可能超过 2 个。

这个游戏需要在地面上画了n排格子，其中第i排包含a[i]个格子。（保证两端的这两排仅有一个格子）



之后规定两端的这两个格子分别为起点和终点，小朋友从起点出发，每次可以跳到下一排或下两排的某个格子，直到抵达终点.

现在小华想知道从起点到终点共有多少种跳法，你能回答她的问题吗？答案对1000000007取模。

输入


第一行输入一个正整数n，其中（3 &lt;= n &lt;= 1000]]></description><category></category></item></channel></rss>