<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Intelligence1028的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/Intelligence1028</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Intelligence1028]]></copyright><item><title><![CDATA[HDU 1611（I-Keyboard）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107708708</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107708708</guid><author>Intelligence1028</author><pubDate>Fri, 31 Jul 2020 11:00:00 +0800</pubDate><description><![CDATA[#include &lt;cstdio&gt;
#include &lt;cstring&gt;
const int MAXN = 95;

int K, L; //按键数，字符数
char key[MAXN], letter[MAXN]; //按键，字符
int freq[MAXN]; //字符频率
int cost[MAXN][MAXN]; //cost[i][j]表示将第i~j个字符分配到一个按键上的价值
int price[MAXN][MAXN]; //price[i][j]表示将前j个字符分配到.]]></description><category></category></item><item><title><![CDATA[HDU 1607（Station Balance）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107695559</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107695559</guid><author>Intelligence1028</author><pubDate>Thu, 30 Jul 2020 17:50:00 +0800</pubDate><description><![CDATA[分为两种情况：

小室数量 &gt;= 样本数量，每个小室内放一个样本；
	小室数量 &lt; 样本数量，首先按样本重量从大到小排序，将重量最大的 2*C-S 个样本单独放置，剩余的样本一个最重的和一个最轻的组合放置。比如样本重量为 5，4，3，2，1，小室数量为 3，则 5 单独放置，4 和 1 组合放置，3 和 2 组合放置。

#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;algorithm&gt;
#include &]]></description><category></category></item><item><title><![CDATA[HDU 1606（Excuses, Excuses!）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107678297</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107678297</guid><author>Intelligence1028</author><pubDate>Thu, 30 Jul 2020 00:00:00 +0800</pubDate><description><![CDATA[题意：

   给定一些纯小写字母的关键单词和一些句子，输出关键单词出现次数最多的句子，句子中的单词不区分大小写，如果有多个句子满足要求，则全部输出。

思路：

保存所有关键单词和句子；
	依次计算每个句子包含关键单词的数量，将句子中的单词依次提取出来，判断是否为关键单词；
	更新所有句子中关键单词出现的最大次数；
	输出关键单词出现次数最多的句子。

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cctype&gt;...]]></description><category></category></item><item><title><![CDATA[HDU 1602（Mark-up）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107640424</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107640424</guid><author>Intelligence1028</author><pubDate>Tue, 28 Jul 2020 17:17:17 +0800</pubDate><description><![CDATA[题目不难，主要注意两点：

\s 之后只有数字和 '.' 属于转义部分，而且 '.' 最多有一个，其它的字符和当前的 \s 无关；
	任意字符都可能是最后一个字符，要随时判断下一个字符是否为 EOF。

#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cctype&gt;
using namespace std;

int main()
{
    string s; //最终输出的字符串
    bool flag = true]]></description><category></category></item><item><title><![CDATA[HDU 1601（Galactic Import）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107622999</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107622999</guid><author>Intelligence1028</author><pubDate>Mon, 27 Jul 2020 22:44:21 +0800</pubDate><description><![CDATA[题意：

   若干行星之间有运输通道，其中一些行星到地球有运输通道，每个行星的产品有自己的价值。行星向地球运输产品时，如果能直达地球，则可以将所有产品运往地球；如果需要路过其他行星，则每路过一颗行星，产品减少当前的 5%。计算从哪个行星向地球运送产品，获得的价值最大。

方法：

   由于行星数量很少，所以暴力破解即可。首先计算每个行星到达地球最少需要经过几个其他行星，然后计算每个行星向地球运送产品可获得的价值，选择最大价值的行星即可。


#include &lt;cstdio&gt;...]]></description><category></category></item><item><title><![CDATA[HDU 1599（find the mincost route）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107597544</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107597544</guid><author>Intelligence1028</author><pubDate>Sun, 26 Jul 2020 19:40:00 +0800</pubDate><description><![CDATA[最短路径问题，使用Floyd算法。


]]></description><category></category></item><item><title><![CDATA[HDU 1598（find the most comfortable road）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107587276</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107587276</guid><author>Intelligence1028</author><pubDate>Sat, 25 Jul 2020 23:59:58 +0800</pubDate><description><![CDATA[使用并查集，先将所有边按长度从小到大排序，然后依次将每条边作为最小边，建立并查集，如果起点和终点在同一个并查集中，则存在通路，此时最小边和最大边的差值即舒适度。


#include &lt;cstdio&gt;
#include &lt;algorithm&gt;
using namespace std;
const int MAXN = 205;
const int MAXM = 1005;
const int INF = 0x3f3f3f3f;

int n, m;
int father[MAXN];]]></description><category></category></item><item><title><![CDATA[HDU 1597（find the nth digit）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107567842</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107567842</guid><author>Intelligence1028</author><pubDate>Fri, 24 Jul 2020 22:22:21 +0800</pubDate><description><![CDATA[基础题。


#include &lt;iostream&gt;
using namespace std;

int main()
{
	int K, N;
	cin &gt;&gt; K;
	while (K--)
	{
		cin &gt;&gt; N;
		for (int i = 1; i &lt; N; i++)
		{
			N -= i;
		}
		if (N % 9 == 0)
			cout &lt;&lt; 9 &lt;&lt; endl;
		else
			cout &lt;&lt]]></description><category></category></item><item><title><![CDATA[HDU 1596（find the safest road）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107477228</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107477228</guid><author>Intelligence1028</author><pubDate>Mon, 20 Jul 2020 23:45:00 +0800</pubDate><description><![CDATA[最短路问题，使用Dijkstra算法即可。


#include &lt;cstdio&gt;
#include &lt;cstring&gt;
const int MAXN = 1010;

double mp[MAXN][MAXN]; //地图
double dis[MAXN]; //起点到其它点的最大安全系数
bool vis[MAXN]; //结点访问情况

//Dijkstra算法，s:起点，e:终点，n:结点数量
double Dijkstra(int s, int e, int n)
{
 .]]></description><category></category></item><item><title><![CDATA[HDU 1595（find the longest of the shortest）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107447136</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107447136</guid><author>Intelligence1028</author><pubDate>Sun, 19 Jul 2020 16:40:00 +0800</pubDate><description><![CDATA[首先计算原始图中，起点到终点的最短路，然后依次删除最短路上的边，计算更新后的图中，起点到终点的最短路，选择所有最短路中长度最长的即可。


#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
const int MAXN = 1005;
const int INF = 0x3f3f3f3f;

int mp[MAXN][MAXN];
int dis[MAXN], vis[MAXN], pre[MAXN];
int]]></description><category></category></item><item><title><![CDATA[HDU 1594（find the max）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107419069</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107419069</guid><author>Intelligence1028</author><pubDate>Fri, 17 Jul 2020 22:22:23 +0800</pubDate><description><![CDATA[基础题。


#include &lt;cstdio&gt;
#include &lt;cmath&gt;
using namespace std;

int main()
{
	int N;
	while (scanf("%d", &amp;N) != EOF)
	{
		int a, b, c;
		scanf("%d%d", &amp;a, &amp;b);
		int maxR = abs(a - b);
		int index = 2;
		for (int i = 3; i &lt;= N; i]]></description><category></category></item><item><title><![CDATA[HDU 1593（find a way to escape）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107397356</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107397356</guid><author>Intelligence1028</author><pubDate>Thu, 16 Jul 2020 23:33:33 +0800</pubDate><description><![CDATA[基础题，岸上的人需要跑的最大距离为半圆，船上的人首先到达和岸上的人相同角速度的小圆上，并且两人位于大圆的直径上，此时船向岸边移动距离最短。


#include &lt;iostream&gt;
#include &lt;cmath&gt;
using namespace std;
const double PI = acos(-1.0);

int main()
{
	double R, V1, V2;
	while (cin &gt;&gt; R &gt;&gt; V1 &gt;&gt; V2)
	{
]]></description><category></category></item><item><title><![CDATA[HDU 1592（Half of and a Half）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107372401</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107372401</guid><author>Intelligence1028</author><pubDate>Wed, 15 Jul 2020 22:55:23 +0800</pubDate><description><![CDATA[大数乘法题，计算 2^(n+1) - 1，套用大数乘法模板即可。


#include &lt;iostream&gt;
using namespace std;
const int MAXN = 1005;

int num[MAXN][MAXN];

//初始化大数数组
void init()
{
	num[0][0] = num[0][1] = 1;
	for (int i = 1; i &lt; MAXN; i++) //大数乘法
	{
		int carry = 0;
		for (int j =]]></description><category></category></item><item><title><![CDATA[HDU 1591（Encoded Love-letter）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107349741</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107349741</guid><author>Intelligence1028</author><pubDate>Tue, 14 Jul 2020 22:55:23 +0800</pubDate><description><![CDATA[基础题。


#include &lt;cstdio&gt;
#include &lt;cstring&gt;
using namespace std;
const int MAXN = 30;

char keyword[MAXN]; //密钥
char s[MAXN]; //各字母的对应字母

void decode(char keyword[])
{
    int len = strlen(keyword);
    for (int i = 0; i &lt; len; i++)
    {
  ]]></description><category></category></item><item><title><![CDATA[HDU 1590（Searching）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107325189</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107325189</guid><author>Intelligence1028</author><pubDate>Mon, 13 Jul 2020 21:12:20 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;complex&gt;
#include &lt;cmath&gt;
#include &lt;iomanip&gt;
using namespace std;
const double PI = acos(-1.0);

int main()
{
    double X, Y, A, k;
    while (cin &gt;&gt; X &gt;&gt; Y &gt;&gt; A &gt;&gt; k)
    {
  .]]></description><category></category></item><item><title><![CDATA[HDU 1588（Gauss Fibonacci）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107291266</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107291266</guid><author>Intelligence1028</author><pubDate>Sat, 11 Jul 2020 22:22:21 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
using namespace std;
const int len = 2;

struct Node
{
	__int64 mat[2][2];
};

Node unit, A; //单位矩阵，矩阵A
int k, b, n, M;

//计算(a*b)%M，其中a和b都是矩阵，M是正整数
Node mul(const Node&amp; a, const Node&amp; b)
{
	Node c;
	for (int i = 0; i &lt.]]></description><category></category></item><item><title><![CDATA[HDU 1587（Flowers）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107289143</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107289143</guid><author>Intelligence1028</author><pubDate>Sat, 11 Jul 2020 19:00:01 +0800</pubDate><description><![CDATA[基础题。


#include &lt;iostream&gt;
using namespace std;

int main()
{
	int N, M;
	while (cin &gt;&gt; N &gt;&gt; M)
	{
		int minPrice = 0x3f3f3f3f; //最低价格
		int temp;
		while (N--)
		{
			cin &gt;&gt; temp;
			if (temp &lt; minPrice)
			{
				minPrice = temp]]></description><category></category></item><item><title><![CDATA[HDU 1584（蜘蛛牌）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107281170</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107281170</guid><author>Intelligence1028</author><pubDate>Sat, 11 Jul 2020 10:40:00 +0800</pubDate><description><![CDATA[深搜题，详细见注释。


#include &lt;iostream&gt;
#include &lt;cstring&gt;
using namespace std;
const int MAXN = 15;
const int INF = 0x3f3f3f3f;

int minDis; //最小移动距离
int pos[MAXN]; //各数字所在的位置
bool vis[MAXN]; //各数字是否移动过

//深搜，count:已经移动的数字的个数，sum:当前移动距离
void DFS(int ]]></description><category></category></item><item><title><![CDATA[HDU 1583（DNA Assembly）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107243231</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107243231</guid><author>Intelligence1028</author><pubDate>Fri, 10 Jul 2020 09:30:00 +0800</pubDate><description><![CDATA[深搜题，由于数据量很小，搜索出所有可能的连接方案，选出长度最短的即可。


#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;
const int MAXN = 10;

int n;
int ans;
int vis[MAXN];
int order[MAXN]; //字符串连接顺序
string str[MAXN];

//将字符串b连接到字符串a之后，并返回连接后的字符串
string strMerge(stri]]></description><category></category></item><item><title><![CDATA[HDU 1582（AC Again）]]></title><link>https://blog.csdn.net/Intelligence1028/article/details/107234640</link><guid>https://blog.csdn.net/Intelligence1028/article/details/107234640</guid><author>Intelligence1028</author><pubDate>Thu, 09 Jul 2020 22:00:00 +0800</pubDate><description><![CDATA[深搜题，字母 A 的图形中，相连的空格区域数为 2；字母 C 的图形中，相连的空格区域数为 1。


#include &lt;cstdio&gt;
using namespace std;
const int MAXN = 55;

char mp[MAXN][MAXN];

//深搜，将(r,c)及其相连的' '替换为'*'
void DFS(int r, int c)
{
    if (r &lt; 0 || r &gt; MAXN || c &lt; 0 || c &gt; MAXN)
     ]]></description><category></category></item></channel></rss>