<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[shan1956的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/shan1956</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; shan1956]]></copyright><item><title><![CDATA[集训队一段-A单调栈]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/126223051</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/126223051</guid><author>shan1956</author><pubDate>Mon, 08 Aug 2022 10:38:59 +0800</pubDate><description><![CDATA[单调栈模板题]]></description><category></category></item><item><title><![CDATA[第十三届蓝桥杯模拟赛--第三题--最少次数]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123999911</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123999911</guid><author>shan1956</author><pubDate>Wed, 06 Apr 2022 21:02:17 +0800</pubDate><description><![CDATA[原题：





思路：用BFS来做，与二维数组些许不同


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

queue&lt;int&gt; q;
queue&lt;int&gt; t;
int ans = 0;
int cnt = 0;
int res = 0;

int bfs(int x)
{
	q.push(x);
	while (q.size())
	{
		ans++;
		int i = 0, j = ]]></description><category></category></item><item><title><![CDATA[第十三届蓝桥杯模拟题--八.插座匹配（暴搜）]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123998989</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123998989</guid><author>shan1956</author><pubDate>Wed, 06 Apr 2022 20:31:57 +0800</pubDate><description><![CDATA[原题：



代码：（没提交的地方，不知道能不能ac）(有问题希望大佬指出，十分感谢)


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

const int N = 110;
char map[N][N];//插座
char mark;//插头
vector&lt;pair&lt;int,int&gt;&gt; mm;              //用vector数组存储插头伸出的部分

int main()
{.]]></description><category></category></item><item><title><![CDATA[第十二届蓝桥杯 ——回路计数]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123948959</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123948959</guid><author>shan1956</author><pubDate>Mon, 04 Apr 2022 09:39:42 +0800</pubDate><description><![CDATA[原题：





ac代码：（状态压缩dp）


#include&lt;iostream&gt;
#include&lt;algorithm&gt;
#include&lt;cstring&gt;
using namespace std;
typedef long long ll;

const ll N = 1 &lt;&lt; 21;
const int M = 22;
int maps[M][M];
ll dp[N][M];

int gcd(int a, int b) {
	if (b ==...]]></description><category></category></item><item><title><![CDATA[最短Hamilton路径Acwing]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123894514</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123894514</guid><author>shan1956</author><pubDate>Fri, 01 Apr 2022 12:07:53 +0800</pubDate><description><![CDATA[原题链接：

91. 最短Hamilton路径 - AcWing题库



ac代码：


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

const int N = 21;
const int M = 1 &lt;&lt; 20;
int w[N][N];
int dp[M][N];

int main()
{
	int n; cin &gt;&gt; n;

]]></description><category></category></item><item><title><![CDATA[十二届蓝桥杯填空题——货物摆放]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123830751</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123830751</guid><author>shan1956</author><pubDate>Tue, 29 Mar 2022 20:13:02 +0800</pubDate><description><![CDATA[原题：











思路：将n的所有约数求出来，每找到积为n的三个约数，方案数加一

ac代码：


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

typedef long long ll;

int ans = 0;
ll n = 2021041820210418;

int main() {

	vector&lt;ll&gt; res;
	for(ll i =1; i&lt;=n/i; i+.]]></description><category></category></item><item><title><![CDATA[十二届蓝桥杯——直线]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123787281</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123787281</guid><author>shan1956</author><pubDate>Mon, 28 Mar 2022 10:19:25 +0800</pubDate><description><![CDATA[原题：转自

亿万程序媛的梦~



解决代码


// y = kx +b
//已知两点的k和b就能确定这两点的直线
//k = (y1-y2)/(x1-x2)
//b = (y1 * x2 - y2 * x1) / x2 - x1
//斜率为零或没有斜率的直线单独考虑

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

typedef pair&lt;double,doub.]]></description><category></category></item><item><title><![CDATA[DP问题——整数划分]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123705788</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123705788</guid><author>shan1956</author><pubDate>Thu, 24 Mar 2022 11:52:18 +0800</pubDate><description><![CDATA[原题链接：

900. 整数划分 - AcWing题库https://www.acwing.com/problem/content/description/902/


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

const int N = 1010;
int dp[N][N];//最大方案数
int n;
int mod = 1e9 + 7;

int main() {

	cin &gt;&gt; n;]]></description><category></category></item><item><title><![CDATA[背包问题——01背包问题与完全背包问题]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123703137</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123703137</guid><author>shan1956</author><pubDate>Thu, 24 Mar 2022 10:45:27 +0800</pubDate><description><![CDATA[一、01背包问题(名字由来：每件物品只能用一次)

2. 01背包问题 - AcWing题库https://www.acwing.com/problem/content/description/2/


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

const int N = 1010;

int dp[N][N];  //dp[i][j]表示从前i件物品选出体积不超过j的物品的最大总价值
int v[N],]]></description><category></category></item><item><title><![CDATA[AcWing 4377. 农田灌溉（BFS）]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123655818</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123655818</guid><author>shan1956</author><pubDate>Tue, 22 Mar 2022 11:37:18 +0800</pubDate><description><![CDATA[原题链接

4377. 农田灌溉 - AcWing题库https://www.acwing.com/problem/content/4380/

普通做法


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

const int N = 210;
int n,m;
int T;
int p[N];


int main() {
	
	cin&gt;&gt;T;
	
	while(T--) {
		
		int r]]></description><category></category></item><item><title><![CDATA[数组三分（滑动窗口）好题好题]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123514625</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123514625</guid><author>shan1956</author><pubDate>Tue, 15 Mar 2022 22:47:14 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;algorithm&gt;
using namespace std;


const int N = 100010;
int n;
long long s[N];
long long ans;
long long  a[N];

int main() {

	cin &gt;&gt; n;

	for (int i = 1; i &lt;= n; i++)
	{
		cin &gt;&gt; s[i];
		s[i] += s[i .]]></description><category></category></item><item><title><![CDATA[47构造数]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123478873</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123478873</guid><author>shan1956</author><pubDate>Mon, 14 Mar 2022 15:03:19 +0800</pubDate><description><![CDATA[ac代码


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

typedef long long ll;

const int N = 1000010;
bool flag = false;
int ii,jj;

int main()
{
	ll x;
	cin&gt;&gt;x;
	
	for(ll i = x/7;i&gt;=0;i--){
		
		if((x- 7*i) % 4==0)
		{
			flag = true;
			
			int ..]]></description><category></category></item><item><title><![CDATA[生成交替二进制串所需最少步数（代码很琐碎）]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123476719</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123476719</guid><author>shan1956</author><pubDate>Mon, 14 Mar 2022 13:38:37 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;algorithm&gt;
#include&lt;cstring&gt;
using namespace std;

const int N = 100010;

int dp1[N];
int dp2[N];
char arr1[N];
char arr2[N];


int main()
{
	cin &gt;&gt; arr1 + 1;
	int len = strlen(arr1 + 1);
	for (int i = 1.]]></description><category></category></item><item><title><![CDATA[二进制一排序]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123475901</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123475901</guid><author>shan1956</author><pubDate>Mon, 14 Mar 2022 12:35:26 +0800</pubDate><description><![CDATA[#include&lt;iostream&gt;
#include&lt;vector&gt;
#include&lt;algorithm&gt;
using namespace std;

typedef long long ll;
typedef pair&lt;ll, ll&gt; PII;
vector&lt;PII&gt; ans;  //第一个值是二进制中一的个数，第二个数是原数 

int get(int x)
{
	int cnt =0 ;
	while (x) {
		x =...]]></description><category></category></item><item><title><![CDATA[线段长度和]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123474035</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123474035</guid><author>shan1956</author><pubDate>Mon, 14 Mar 2022 11:03:23 +0800</pubDate><description><![CDATA[暴力枚举会超时

ac代码


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

long long ans;
long long a[200010];

int main()
{
	long long n;
	cin&gt;&gt;n;
	
	for(long long i =0;i&lt;n;i++){
		cin&gt;&gt;a[i];
	}
	sort(a,a+n);
	for(long long i ]]></description><category></category></item><item><title><![CDATA[蓝桥杯2018年第九届真题-递增三元组（二刷）]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123416812</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123416812</guid><author>shan1956</author><pubDate>Fri, 11 Mar 2022 10:01:14 +0800</pubDate><description><![CDATA[原题链接：

蓝桥杯2018年第九届真题-递增三元组 - C语言网 (dotcpp.com)https://www.dotcpp.com/oj/problem2194.htmlo(n3)+优化

o(n2)ac代码：


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

const int N = 100010;
int a[N], b[N], c[N];
int ans;

int main()
{
	int ]]></description><category></category></item><item><title><![CDATA[第十二届蓝桥杯 试题 E: 路径 代码（dijkstra算法）]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123416504</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123416504</guid><author>shan1956</author><pubDate>Fri, 11 Mar 2022 09:24:53 +0800</pubDate><description><![CDATA[dijkstra算法解决十二届蓝桥杯E题--路径
]]></description><category></category></item><item><title><![CDATA[Dijkstra求最短路（朴素）邻接表+邻接矩阵]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123413450</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123413450</guid><author>shan1956</author><pubDate>Thu, 10 Mar 2022 22:40:24 +0800</pubDate><description><![CDATA[邻接表：稀疏图


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

const int N = 100010;
int h[N], e[N], ne[N], w[N], idx;//邻接表
int d[N];
bool st[N];
int n, m;

void add(int a, int b, int c) {

	e[idx] = b, ne[idx] =]]></description><category></category></item><item><title><![CDATA[蓝桥杯真题-再战七段码--数组全排列&&连通块 || 并查集&&图]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123345191</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123345191</guid><author>shan1956</author><pubDate>Tue, 08 Mar 2022 10:08:12 +0800</pubDate><description><![CDATA[原题链接：

2020蓝桥杯省赛C/C++ 七段码 简单易懂的思路_Sh0wMa1ker的博客-优快云博客_蓝桥杯七段码https://blog.youkuaiyun.com/weixin_45783661/article/details/115433100

方法一：数组全排列&amp;&amp;连通块


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

const in]]></description><category></category></item><item><title><![CDATA[2016年蓝桥杯--剪邮票--涉及数组映射，连通块检测，数组元素全排列]]></title><link>https://blog.youkuaiyun.com/shan1956/article/details/123341665</link><guid>https://blog.youkuaiyun.com/shan1956/article/details/123341665</guid><author>shan1956</author><pubDate>Mon, 07 Mar 2022 22:47:53 +0800</pubDate><description><![CDATA[原题链接：

2016-第七届蓝桥杯大赛个人赛省赛（软件类）真题 C大学B组 - Marginalin - 博客园 (cnblogs.com)https://www.cnblogs.com/Marginalin/p/12609573.html#7.%E5%89%AA%E9%82%AE%E7%A5%A8代码：


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

int s[13] = {1,1,1,1,1,0,0,0,0,0,0,0}; 
int ans;
int]]></description><category></category></item></channel></rss>