<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mario__SZ的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Mario__SZ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Mario__SZ]]></copyright><item><title><![CDATA[国科大2023【矩阵分析与应用（李保滨）】期末考试（回忆版）]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/134547781</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/134547781</guid><author>Mario__SZ</author><pubDate>Wed, 22 Nov 2023 19:26:00 +0800</pubDate><description><![CDATA[矩阵分析与应用2023年期末考试一共七道大题，没有判断以及填空，全是简答、计算和证明。]]></description><category></category></item><item><title><![CDATA[【Noi OpenJudge】 算24 解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53641588</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53641588</guid><author>Mario__SZ</author><pubDate>Wed, 14 Dec 2016 16:35:07 +0800</pubDate><description><![CDATA[一道比较水的搜索题，就是给你4个数，询问是否可以通过变换位置，加入运算符‘+’，‘-’，‘×’，‘÷’和‘（）’得到24刚开始想复杂了，搞了半天没搞出来，仔细一想，括号的方案数一共就五种（运算符先不加）， 
1、[(ab)c]d2、[(ab)(cd)]3、[a(bc)]d4、a[(bc)d]5、a[b(cd)]1、\quad{[(ab) c] d} \\
2、\quad{[(a b) (c d)]}]]></description><category></category></item><item><title><![CDATA[【POJ 2157】 Maze   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53557434</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53557434</guid><author>Mario__SZ</author><pubDate>Sat, 10 Dec 2016 11:37:40 +0800</pubDate><description><![CDATA[题目大意是给你一张n×m的迷宫，大写字母A-E代表的是门，小写字母a-e对应的是其大写字母门的钥匙，如果一扇门在一张图里有多个钥匙，那么必须都找到这些钥匙才能打开这扇门，X代表是墙壁，‘.’代表此处为空可以行走，询问是否可以从S走到G。刚开始思路想错了，想着一个点最多被访问4次，然后就自信的写完了，手出了组数据，好像不大对。。然后就开始想想想，最后还是没有想到什么比较好的搜索方式，，只能看题解了。看]]></description><category></category></item><item><title><![CDATA[【POJ 1986】 Distance Queries   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53523915</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53523915</guid><author>Mario__SZ</author><pubDate>Thu, 08 Dec 2016 20:32:02 +0800</pubDate><description><![CDATA[刚刚学了LCA的ST算法，这是一道很好的模板题，题目输入最后的英文字母请无视，没有卵用。代码如下/*My convictions will not falter.--Poppy*/
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
const int N=100005;]]></description><category></category></item><item><title><![CDATA[【NOIP 2016】 组合数问题   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53469721</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53469721</guid><author>Mario__SZ</author><pubDate>Mon, 05 Dec 2016 20:22:53 +0800</pubDate><description><![CDATA[day2 T1暴力打残只得了20分，出考场才知道是个杨辉三角，悔恨莫及。 
组合数公式Cij=s[i−1][j−1]+s[i−1][j]C^i_j=s[i-1][j-1]+s[i-1][j]，这个应该不难理解，2000*2000的暴力算一下就可以了，然后二维前缀和维护，注意，杨辉三角不是矩形，当计算sum[i][i]时，会用到sum[i-1][i]，而在杨辉三角中没有列比行打的情况，所以在计算的时候]]></description><category></category></item><item><title><![CDATA[间谍网络--tarjan 解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53469167</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53469167</guid><author>Mario__SZ</author><pubDate>Mon, 05 Dec 2016 19:49:46 +0800</pubDate><description><![CDATA[一道比较裸的tarjan题，但由于第一次写，还是wa了几次可以先dfs一遍，如果是NO就直接遍历找出最小的点，return 0; 
否则就tarjan一边并把一个SCC里cost最小的值min找到，SCC_cost[SCC_sum]=min，并缩点，最后找入度为零的点计算costcost的和，输出即可。代码如下#include<algorithm>
#include<iostream>
#inclu]]></description><category></category></item><item><title><![CDATA[【HNOI 2004】 敲砖块   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53160166</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53160166</guid><author>Mario__SZ</author><pubDate>Mon, 14 Nov 2016 16:17:16 +0800</pubDate><description><![CDATA[HNOI2004 敲砖块 
一道DP题，把其看成一个直角三角形，敲第i列的第j块时，第i+1列一定是敲了j-1块的 
s[i][j][k]是敲掉第i列第j块一共敲了k块的最大分值，那么转移方程为 
s[i][j][k]=max(s[i+1][h][k−j](j−1≤h≤n−i))+∑h=1ja[h][i]s[i][j][k]=max(s[i+1][h][k-j](j-1≤h≤n-i))+\sum_{]]></description><category></category></item><item><title><![CDATA[【Noi OpenJudge】 核电站   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53152645</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53152645</guid><author>Mario__SZ</author><pubDate>Sun, 13 Nov 2016 21:54:49 +0800</pubDate><description><![CDATA[一个核电站有N(1≤N≤50)个放核物质的坑，坑排列在一条直线上。如果连续M(2≤M≤5)个坑中放入核物质，则会发生爆炸，于是，在某些坑中可能不放核物质。 
任务：对于给定的N和M，求不发生爆炸的放置核物质的方案总数  
这道题比较容易想到的递推是二维的，用s[i][0]和s[i][1]来表示第i个核电站不放或放且不爆炸的总方案数 
s[i][0]=s[i−1][0]+s[i−1][1](1≤i≤n]]></description><category></category></item><item><title><![CDATA[【POJ 1664】 放苹果   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53146984</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53146984</guid><author>Mario__SZ</author><pubDate>Sun, 13 Nov 2016 07:36:52 +0800</pubDate><description><![CDATA[这是一道求总方案数的DP，唯一的不同就是2,5这种放法和5,2是一样的，于是这道题就变成了把整数n分成非负整数m份，有多少种分法，写转移方程式的时候要仔细思考思考。 
用s[i][j]表示用i个盘子放j个苹果的不重复的总方案数。 
处理边界：s[1][k]=1(0≤k≤m)s[1][k]=1(0≤k≤m)，s[1][k]很显然只有一种方法。s[i][j]={s[i−1][j]+s[i][j−i]s[]]></description><category></category></item><item><title><![CDATA[【Noi OpenJudge】 带通配符的字符串匹配   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53141386</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53141386</guid><author>Mario__SZ</author><pubDate>Sat, 12 Nov 2016 16:20:11 +0800</pubDate><description><![CDATA[本来想刷刷DP水题，结果手残点开了这题，打眼一看有事字符串匹配的题，还是分情况讨论。 
当a[i]=∗a[i]=*时，可以代替零个或多个字符，当a[i]=?a[i]=?时，可以且必须代替一个字，然后分类。 
s[i][j]s[i][j]代表AA串前ii个和BB串中前jj个是否能匹配， 
代码如下：/*
My convictions will not falter.--Poppy
*/ 
#inclu]]></description><category></category></item><item><title><![CDATA[【Noip 2015】 子串   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53129838</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53129838</guid><author>Mario__SZ</author><pubDate>Fri, 11 Nov 2016 16:15:38 +0800</pubDate><description><![CDATA[今天没有模拟赛，便心血来潮，想练练DP，然后就选了这道Noip 2015 Day2 T2，倒腾了3h。 
这道题我开始想的做法太离谱了，结果搞了半天连样例都没过，没办法无奈看题解了，又由于对这道题理解不是很透彻，导致我看了半天题解也没看懂，后来静下心来看了半个小时终于恍然大悟。 
正解应该是O(knm)O(knm)的做法，最外层for循环枚举k表示用多少个子串，再枚举B子串的长度，最里层枚举A子串的]]></description><category></category></item><item><title><![CDATA[欧拉线性筛法求素数   学习报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53112344</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53112344</guid><author>Mario__SZ</author><pubDate>Thu, 10 Nov 2016 09:06:15 +0800</pubDate><description><![CDATA[筛素数的方法有很多，先说一下Eratosthenes筛法，这种筛法的思想不难理解，就是对不超过n的每个正整数p，依次删除p,2*p,3*p……(k-1)*p,k*p(k*p<=n)，最后没被筛除的就是素数了 
代码也是很好写的，如下：#include<iostream>
#include<cstdio>
#define N 100000
using namespace std;
int i,j;
b]]></description><category></category></item><item><title><![CDATA[【Noip 2009】 最优贸易   解题报告]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53105699</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53105699</guid><author>Mario__SZ</author><pubDate>Wed, 09 Nov 2016 20:38:13 +0800</pubDate><description><![CDATA[这道题打眼一看，好像是让求图中的差值最大的两个点a,b,但是好像又不大对，a，b两点必须是联通的，不进如此，a，b两点必须是v1到vn的一条路径上的点。 
然后乱搞没搞出来，，无奈只能看题解，看完之后恍然大悟，原来只需两遍spfa(好像也有一遍做法),第一遍求出从vi的wm[i],就是从源节点1到vi的路径上最小的w[j],然后再反着遍历一遍（边也对应反过来，这里我用的是两个链表存储），从vn出发,]]></description><category></category></item><item><title><![CDATA[【NOIP 2005】 等价表达式 题解]]></title><link>https://blog.youkuaiyun.com/Mario__SZ/article/details/53095496</link><guid>https://blog.youkuaiyun.com/Mario__SZ/article/details/53095496</guid><author>Mario__SZ</author><pubDate>Wed, 09 Nov 2016 07:46:35 +0800</pubDate><description><![CDATA[【NOIP 2005】 等价表达式 题解昨天复习了一下表达式（栈）和图论相关的算法，结果卡在一道题上，上午做的等价表达式，下午才有所进展，最后好不容易写出来了个像样的程序，，但又因为落谷和codevs上数据有误（左右括号不匹配导致R RE，例如(a+2)^2)），，折腾半天，最后到vijos上也只是分多了点，，也没A掉。 
  两个栈是肯定的，一个用来存储数字，一个用来存储符号。 
读入数字时，直接]]></description><category></category></item></channel></rss>