<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Decide_k的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Decide_k</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Decide_k]]></copyright><item><title><![CDATA[【递归算法】快速排序]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124992512</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124992512</guid><author>Decide_k</author><pubDate>Thu, 26 May 2022 21:04:40 +0800</pubDate><description><![CDATA[【递归算法】快速排序（二分详解）]]></description><category></category></item><item><title><![CDATA[【NOIP2017普及组正式赛】采药]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124933599</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124933599</guid><author>Decide_k</author><pubDate>Mon, 23 May 2022 19:53:37 +0800</pubDate><description><![CDATA[题目描述

辰辰是个天资聪颖的孩子，他的梦想是成为世界上最伟大的医师。
为此，他想拜附近最有威望的医师为师。医师为了判断他的资质，给他出了一个难题。
医师把他带到一个到处都是草药的山洞里对他说：“孩子，这个山洞里有一些不同的草药，采每一株都需要一些时间，每一株也有它自身的价值。我会给你一段时间，在这段时间里，你可以采到一些草药。
如果你是一个聪明的孩子，你应该可以让采到的草药的总价值最大。” 如果你是辰辰，你能完成这个任务吗？]]></description><category></category></item><item><title><![CDATA[【递归算法】汉诺塔]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124829223</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124829223</guid><author>Decide_k</author><pubDate>Tue, 17 May 2022 20:28:06 +0800</pubDate><description><![CDATA[题目描述

古埃及有个很聪明的人犯了一项死罪，国王要处他死刑，他请求国王赦免他死刑，国王同意了他，但前提是要他完成一个游戏，游戏规则是这样的：
有3个柱子A,B,C,一开始A柱上有N个盘子，按照从小到大的顺序插在A柱上，要求把这N个盘子从A柱上移动到C柱上，移动过程中必须保证不能把大盘子放置在小盘子之上。如下图是N=3时的初始状态：
这个罪犯很聪明，一下子就找出了最少移动次数的方法，他的方法是这样的：先把上面的N-1个盘子移到B柱，再把A柱上最大的那个盘子移到C柱，最后再把B柱上的N-1个盘子移到C柱。
国]]></description><category></category></item><item><title><![CDATA[【递归算法】梵塔问题]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124829126</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124829126</guid><author>Decide_k</author><pubDate>Tue, 17 May 2022 20:21:01 +0800</pubDate><description><![CDATA[题目描述

有三个塔柱（以A，B，C表示）。在A上有一个干塔，共N层。今以一个圆盘代表一层，在盘在下，小盘在上。要求将塔从A移动到C。按规定，每次只能移动一个盘子，可以将盘子放在三个塔柱中任一个上，但大盘子不能放在小盘子上面。试编程序打印出移塔过程。

输入

输入正整数n

输出

输出移动的过程，每行一个过程

样例输入


2

样例输出


A&gt;B
A&gt;C
B&gt;C

用小点的几个数模拟，规律不一会就出来了




#include&lt;cstdio&gt;
#include&..]]></description><category></category></item><item><title><![CDATA[【高精度练习】超级计算机]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124782441</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124782441</guid><author>Decide_k</author><pubDate>Sun, 15 May 2022 15:06:09 +0800</pubDate><description><![CDATA[题目描述

贝贝是学校信息学编程小组的学生，一天，他的数学老师碰到这样一个问题：他想求两个很长的数的乘积，但用普通的计算器无法完成计算，于是他请编程班的贝贝帮忙设计一个“超级计算器”，解决他所遇到的问题。
请你编一程序，帮贝贝解决这个问题。

输入

两行，分别是两个在10^100以内的自然数。

输出

两数相乘的结果。

样例输入


578474357954668
12435124571

样例输出


7193400702295541350947428



呦呦呦，这不高精度乘法吗，几天不见，这么]]></description><category></category></item><item><title><![CDATA[【高精度算法】高精度求积]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124782377</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124782377</guid><author>Decide_k</author><pubDate>Sun, 15 May 2022 15:02:03 +0800</pubDate><description><![CDATA[题目描述

输入两个高精度正整数M和N（M和N均小于100位）。求这两个高精度数的积。

输入

两行，分别输入两个高精度正整数M和N

输出

输出计算结果

样例输入


36
3

样例输出


108



从后往前逐为相乘，结果加在i+j-1，也也要注意进位




#include&lt;bits/stdc++.h&gt;
using namespace std;
char s1[1005],s2[1005];
int a[1005],b[1005],c[1005],i=1;
int main(]]></description><category></category></item><item><title><![CDATA[【高精度练习】加法天才]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124782302</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124782302</guid><author>Decide_k</author><pubDate>Sun, 15 May 2022 14:55:25 +0800</pubDate><description><![CDATA[题目描述

贝贝是一个聪明的小孩，他总喜欢玩数字加法的游戏。一天，他的数学老师为了考一考他的能力，出了一道这样的题：要求他在短时间内计算出两个大数相加的结果。这两个大数可不是普通的数字，它们是11位以上的“庞然大物”。
请你编程序，帮贝贝解决这个问题。

输入

两行，分别是两个需要相加的数A和B，这两个数在10^11～10^150之间。

输出

1行，是两个大数相加的结果。

样例输入


8569742356145896
215783669444444427

样例输出


2243534118005]]></description><category></category></item><item><title><![CDATA[【搜索与回溯算法】字母游戏 详解]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124782245</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124782245</guid><author>Decide_k</author><pubDate>Sun, 15 May 2022 14:51:11 +0800</pubDate><description><![CDATA[题目描述

一种单人玩的游戏，规则为：
在一个R行C列的方格上，每个方格中有一个A～Z的字母。游戏从左上角（第一行，第一列）位置开始，一步一步地向相邻（上、下、左、右）方格移动。唯一的限制是路径上的方格中的字母，每种字母只能出现1次。
游戏的目标是走尽可能长的路径。请你写程序算出指定棋盘上，可能走的最长步数。

输入

第1行两个整数R和C(1≤R，C≤20)；
后面R行每行有C个字母，每行表示棋盘上的一行状态。

输出

有且只有一行，你计算出的最长步数。

样例输入


5 5
IEFCJ
FHF...]]></description><category></category></item><item><title><![CDATA[【搜索与回溯算法】售货员的烦恼]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124696087</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124696087</guid><author>Decide_k</author><pubDate>Tue, 10 May 2022 20:03:16 +0800</pubDate><description><![CDATA[题目描述

一间冰淇淋商店刚刚开张，外面有2×N个人购买1元的冰淇淋，其中一半人拿着1张2元人民币，另一半人拿一张1元人民币。售货员很粗心，没有准备零钱，要使出售过程中不发生找钱困难的问题，这2×N个人应该如何排队？请你帮售货员找出所有方案数量的总和。

输入

一个整数N(N≤15)。

输出

方案总数M。

样例输入


4

样例输出


14

递归内：

如果选完则ans++，否则判断如果还能选（具体见代码）则深一层递归




#include &lt;bits/stdc++.h&gt;
us]]></description><category></category></item><item><title><![CDATA[【USACO题库】1.5.2 Prime Palindromes回文质数]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124674688</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124674688</guid><author>Decide_k</author><pubDate>Mon, 09 May 2022 20:38:38 +0800</pubDate><description><![CDATA[题目描述

因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的)，所以 151 号是回文质数。
写一个程序来找出范围[a,b](5 &lt;= a &lt; b &lt;= 100,000,000)间的所有回文质数;

输入

第 1 行: 二个整数 a 和 b .

输出

输出一个回文质数的列表，一行一个。

样例输入


5 500

样例输出


5
7
11
101
131
151
181
191
313
353
373
383



从没见过如此淼题

又是模拟，还是那句话：注.]]></description><category></category></item><item><title><![CDATA[【USACO题库】1.2.4 Palindromic Squares回文平方数]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124674585</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124674585</guid><author>Decide_k</author><pubDate>Mon, 09 May 2022 20:34:55 +0800</pubDate><description><![CDATA[题目描述

回文数是指从左向右念和从右像做念都一样的数。如12321就是一个典型的回文数。
给定一个进制B(2&lt;=B&lt;=20十进制)，输出所有的大于等于1小于等于300且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10，11等等。

输入

共一行，一个单独的整数B(B用十进制表示)。

输出

每行两个数字，第二个数是第一个数的平方，且第二个数是回文数。(注意:这两个数都应该在B那个进制下)

样例输入


10

样例输出


1 1
2 4
3 9
11 121
22 48]]></description><category></category></item><item><title><![CDATA[【动态规划】拦截导弹1]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124577629</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124577629</guid><author>Decide_k</author><pubDate>Wed, 04 May 2022 21:13:58 +0800</pubDate><description><![CDATA[题目描述

   某国为了防御敌国的导弹袭击，发展出一种导弹拦截系统。但是这种拦截系统有一个缺陷：虽然它的第一发炮弹能够到达任意的高度，但是以后每一发炮弹都不能高于前一发的高度。某天，雷达捕捉到敌国的导弹来袭，由于该系统还在试用阶段。所以只有一套系统，因此有可能不能拦截所有的导弹。
   输入导弹依次飞来的高度(雷达给出的高度不大于30000的正整数)。计算这套系统最多能拦截多少导弹。

输入

N颗依次飞来的导弹高度，（导弹个数&lt;=1000）。

输出

一套系统最多拦截的导弹数，并依...]]></description><category></category></item><item><title><![CDATA[【USACO题库】1.5.4 Checker Challenge跳棋的挑战]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124559545</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124559545</guid><author>Decide_k</author><pubDate>Tue, 03 May 2022 18:52:16 +0800</pubDate><description><![CDATA[题目描述

检查一个如下的6 x 6的跳棋棋盘，有六个棋子被放置在棋盘上，使得每行，每列，每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子。
列号
1 2 3 4 5 6
-------------------------
1 | | O | | | | |
-------------------------
2 | | | | O | | |
-------------------------
3 | | | | | | O |
-------------------------
4 | O.]]></description><category></category></item><item><title><![CDATA[【USACO题库】1.5.3 Superprime Rib特殊的质数肋骨]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124559107</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124559107</guid><author>Decide_k</author><pubDate>Tue, 03 May 2022 18:22:06 +0800</pubDate><description><![CDATA[题目描述

农民约翰母牛总是产生最好的肋骨。
你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。
农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:
7 3 3 1
全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。
7331 被叫做长度 4 的特殊质数。
写一个程序对给定的肋骨的数目 N (1&lt;=N&lt;=8),求出所有的特殊质数。
数字1不被看作一个质数]]></description><category></category></item><item><title><![CDATA[1141. 【贪心算法】排队打水]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124541246</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124541246</guid><author>Decide_k</author><pubDate>Mon, 02 May 2022 15:09:53 +0800</pubDate><description><![CDATA[题目描述

有n（n&lt;=1000）个人在一个水龙头前排队接水，假如每个人接水的时间为Ti，请编程找出这n个人排队的一种顺序，使得n个人的平均等待时间最小。

输入

输入文件共两行，第一行为n；第二行分别表示第1个人到第n个人每人的接水时间T1，T2，…，Tn，每个数据之间有1个空格。

输出

输出文件有两行，第一行为一种排队顺序，即1到n的一种排列（如果有多种方案，请输出字典序最小的方案）；第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。

样例输入


10 
56 12 1]]></description><category></category></item><item><title><![CDATA[【搜索与回溯算法】泡泡龙]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124541060</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124541060</guid><author>Decide_k</author><pubDate>Mon, 02 May 2022 15:00:12 +0800</pubDate><description><![CDATA[题目描述

这是一个简化版的网络游戏：在一个N×N方块构成的棋盘中，每个方块均涂上红、黄、蓝、绿（记为l、2、3、4）中的一种颜色，游戏者可以在最底行任意找一个方块，用鼠标双击这个方块，于是该方块及与之相邻（即在上、下、左、右四个方向上有公共边）的所有的同色方块均被消掉，而因下方失去支持的方块将会自由落下填补空位。样例中给出一个4×4的棋盘样例，当游戏者双击最底层左边第二个方块后，将会形成输出结果的布局。
你的任务是编写一个泡泡龙模拟程序，对于给定的一个初始棋盘，计算游戏者双击最底层某个方块后棋盘的布局将会]]></description><category></category></item><item><title><![CDATA[【动态规划】数字三角形]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124533297</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124533297</guid><author>Decide_k</author><pubDate>Sun, 01 May 2022 21:47:09 +0800</pubDate><description><![CDATA[题目描述

考虑在下面被显示的数字金字塔。
写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。
每一步可以走到左下方的点也可以到达右下方的点。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30


输入

第一个行包含 R(1&lt;= R&lt;=1000) ,表示行的数目。
后面每行为这个数字金字塔特定行包含的整数。
所有的被供应的整数是非负的且不大于100。

输出

单独的一行包含那个可能.]]></description><category></category></item><item><title><![CDATA[【动态规划】背包问题2]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124533141</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124533141</guid><author>Decide_k</author><pubDate>Sun, 01 May 2022 21:41:12 +0800</pubDate><description><![CDATA[题目描述

有个背包可承受重量N，现有T类物品
每类物品重量为Wi,价值为Vi ,每类物品的数量是无穷的,
这个背包可以装载物品的最大价值是多少?

输入

一行,N T 之间用空格隔开
后面t行,每行:重量Wi,价值Vi

输出

这个背包可以装载物品的最大价值

样例输入


100 5
77 92
22 22
29 87
50 46
99 90
 

样例输出


261



在背包1的基础上加循环，循环变量为同一物品选择的数量，要注意的是：

1：要从


(m - wi) / w[st...]]></description><category></category></item><item><title><![CDATA[【动态规划】背包问题1]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124532945</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124532945</guid><author>Decide_k</author><pubDate>Sun, 01 May 2022 21:32:00 +0800</pubDate><description><![CDATA[题目描述

有个背包可承受重量N，现有T件物品
每件物品重量为Wi,价值为Vi ,每件物品只有一个,
这个背包可以装载物品的最大价值是多少?

输入

一行,N T 之间用空格隔开
后面t行,每行:重量Wi,价值Vi

输出

这个背包可以装载物品的最大价值

样例输入


100 5
77 92
22 22
29 87
50 46
99 90
 

样例输出


133



01背包，原基础上加记忆化就OK了

f[i][j]:

i表示第i个物品

j表示重量为j

总的表示最大价值

上代码



]]></description><category></category></item><item><title><![CDATA[【USACO题库】1.2.5 Dual Palindromes双重回文数]]></title><link>https://blog.youkuaiyun.com/Decide_k/article/details/124436127</link><guid>https://blog.youkuaiyun.com/Decide_k/article/details/124436127</guid><author>Decide_k</author><pubDate>Tue, 26 Apr 2022 20:19:35 +0800</pubDate><description><![CDATA[【USACO题库】1.2.5 Dual Palindromes双重回文数]]></description><category></category></item></channel></rss>