<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[阿狸的博客]]></title><description><![CDATA[求求你们说点什么吧QAQ]]></description><link>https://blog.youkuaiyun.com/qq_37632935</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_37632935]]></copyright><item><title><![CDATA[omp算法流程例子]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/120865845</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/120865845</guid><author>qq_37632935</author><pubDate>Wed, 20 Oct 2021 14:42:29 +0800</pubDate><description><![CDATA[omp算法常用在求解y=Ax的问题中的系数矩阵x，在分类问题中y常作为测试集，A为训练集，该算法是为了解出x，且x尽可能含有多个0（l1范式）。




]]></description><category></category></item><item><title><![CDATA[反向传播中矩阵求导问题]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/120101405</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/120101405</guid><author>qq_37632935</author><pubDate>Sat, 04 Sep 2021 16:05:39 +0800</pubDate><description><![CDATA[anx
]]></description><category></category></item><item><title><![CDATA[万元博弈问题]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/105303409</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/105303409</guid><author>qq_37632935</author><pubDate>Fri, 03 Apr 2020 23:57:39 +0800</pubDate><description><![CDATA[问题：有一万元，一群人去竞拍，每次以100的整数倍提价，价高者得之，但是排名第二的人的出价会被没收。假设只有两个人参加这次竞拍，身上各有10万元，而且这两个人都是理性人，则出价多少就可以拍下这个1万元？

思路：这个游戏一旦开始，双方为了让自己的损失减小那么会不断提价。例如第一个人开价100元竞价成功就会获得9900元，第二个人获得0元。第二个人为了获取更大的利益可能就会叫价200元，如果竞价成功......]]></description><category></category></item><item><title><![CDATA[HDU - 6295 （暴力）]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/89708161</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/89708161</guid><author>qq_37632935</author><pubDate>Tue, 30 Apr 2019 14:09:56 +0800</pubDate><description><![CDATA[题意：给你n个点构成的树，每个点随机[1,n]的权值，问你树上存在多少回文串。

思路：权值是随机[1,n]。考虑下概率大胆猜测一下回文串长度肯定非常短。暴力一下长度小于等于3的数量就行了。


#include &lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
vector&lt;int&gt; q[100005];...]]></description><category></category></item><item><title><![CDATA[浙江省赛C Array in the Pocket(贪心)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/89639569</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/89639569</guid><author>qq_37632935</author><pubDate>Sun, 28 Apr 2019 15:46:47 +0800</pubDate><description><![CDATA[题意：给一个数组A，求一个B，使的B是A的全排列，且对任意位置a[i]!=a[j],求满足条件字典序最小的B数组。

思路：我们从头开始，每次放最小的元素，判断所有元素剩余个数加上A数组当前位置后面所有元素剩余个数是否小于n-i即可。用set+优先队列瞎搞就行了。


#include &lt;bits/stdc++.h&gt;
using namespace std;
typedef long ...]]></description><category></category></item><item><title><![CDATA[CSU - 1808 （最短路）]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/89553260</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/89553260</guid><author>qq_37632935</author><pubDate>Fri, 26 Apr 2019 14:47:31 +0800</pubDate><description><![CDATA[题意：给你n个点，m条边，边类型不同转移需要额外花费，问1到n的最短路。

思路：因为每个点可能有多种不同类型的边转移过来。因为类型太多我们无法二维记录当前点由那个边转移来的。所以我们可以枚举边。把每条边当成一个点，做最短路。


#include &lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
struct nod...]]></description><category></category></item><item><title><![CDATA[FZU - 2302 (斜率优化dp)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/89458126</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/89458126</guid><author>qq_37632935</author><pubDate>Mon, 22 Apr 2019 18:56:37 +0800</pubDate><description><![CDATA[题意：把一个环分为k段，求如何分使的子段平方和最小。

思路:设dp[i][k]表示前i个分为k段的最小值，易得dp[i][k]=min(dp[i][j],dp[i][k-1]+(sum[i]-sum[j-1])*(sum[i]-sum[j-1])).可以写出一个n^4的算法，但n为200，观察发现sum是递增的.

设k1&lt;k2。

令F[k2][k1]表示即k2比k1要优。那么F[k2]...]]></description><category></category></item><item><title><![CDATA[FZU - 2295 (最大闭合权子图)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/89398349</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/89398349</guid><author>qq_37632935</author><pubDate>Fri, 19 Apr 2019 13:48:01 +0800</pubDate><description><![CDATA[题意：给你n个技能，m个工作，k个互斥关系。每个技能需要花费，并且学习一个技能可能需要先学会其他技能。完成一个工作需要前置技能，完成一个工作你会获得赏金。有k对工作不能同时完成。问你能获得多少赏金。

思路：因为我们完成一个工作需要一些前置技能，所以我们把工作向他所需要的前置技能建立一条边。每个技能向他的前置技能建一条边。那么我们可以发现。我们如果需要完成一个工作。那么该工作的所有后继边所连接的技...]]></description><category></category></item><item><title><![CDATA[fzu-2105(线段树区间更新)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/88820163</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/88820163</guid><author>qq_37632935</author><pubDate>Tue, 26 Mar 2019 14:45:40 +0800</pubDate><description><![CDATA[题意：区间有三种二进制操作，区间中的值不超过16，然后查询区间和。因为每个数很小，所以区间内存在大量重复值，并且经过二进制操作后区间中相等的值会越来越多。我们只需要记录当前区间中的值是否相等即可。


#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;iostream&gt;
#include &lt;algorithm...]]></description><category></category></item><item><title><![CDATA[hdu1695 bzoj2301(莫比乌斯反演)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/88553550</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/88553550</guid><author>qq_37632935</author><pubDate>Thu, 14 Mar 2019 15:28:26 +0800</pubDate><description><![CDATA[hdu1695 

题意求：

思路：看到gcd求和的式子基本都是莫比乌斯反演。

那么我们对原式除以k，就变成，

我们设f[k]=(gcd(i,j)=k),F[x]=(k|gcd(i,j)).那么我们求得ans=f[1]。易得F[k]=(n/i)*(m/k)

利用莫比乌斯第二条公式反演得到



所以


#include &amp;lt;bits/stdc++.h&amp;gt;
using names...]]></description><category></category></item><item><title><![CDATA[两球体积并]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/88530786</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/88530786</guid><author>qq_37632935</author><pubDate>Wed, 13 Mar 2019 13:47:32 +0800</pubDate><description><![CDATA[求两个球体积的并，分三种情况，两球有交集，两球相离，包含情况。


#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;

int main()
{
	double pi=acos(-1.0);
	double x1,y1,z1,r1,x2,y2,z2,r2;
	cin&amp;gt;&amp;gt;x1&amp;gt;&amp;gt;y1&amp;gt;&amp;gt;z1&amp;gt;&amp;gt;r1...]]></description><category></category></item><item><title><![CDATA[hdu6278 (二分+主席树或者莫队+二分树状数组)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/87919230</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/87919230</guid><author>qq_37632935</author><pubDate>Mon, 25 Feb 2019 16:23:31 +0800</pubDate><description><![CDATA[题意:查询区间l,r中最的大x，满足区间中大于等于x的的数量大于x。

思路:二分答案，然后主席树查询第(r-l+1)-mid+1大和mid比较即可。


#include &lt;bits/stdc++.h&gt;
using namespace std;
typedef long long ll;
int ran[100005],root[100005];

struct node{
	int...]]></description><category></category></item><item><title><![CDATA[codevs5339(反着dp)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/87901088</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/87901088</guid><author>qq_37632935</author><pubDate>Sun, 24 Feb 2019 11:12:51 +0800</pubDate><description><![CDATA[【题目背景】

小奇要开采一些矿物，它驾驶着一台带有钻头（初始能力值w）的飞船，按既定路线依次飞过喵星系的n个星球。

【问题描述】

星球分为2类：资源型和维修型。 
1.资源型：含矿物质量a[i]，若选择开采，则得到a[i]p的金钱，之后钻头损耗k%，即p=p(1-0.01k) 
2.维修型：维护费用b[i]，若选择维修，则支付b[i]p的金钱，之后钻头修复c%，即p=p(1+0.01c) 
...]]></description><category></category></item><item><title><![CDATA[hdu4857(拓扑排序，反向建图)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/87900434</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/87900434</guid><author>qq_37632935</author><pubDate>Sun, 24 Feb 2019 10:14:16 +0800</pubDate><description><![CDATA[逃生

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8445    Accepted Submission(s): 2423
 

Problem Description

糟糕的事情发生啦，现在大家都忙着逃命。但是逃命的通道很窄，大...]]></description><category></category></item><item><title><![CDATA[codeforces 1117D Magic Gems(矩阵快速幂或杜教BM)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/87889975</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/87889975</guid><author>qq_37632935</author><pubDate>Sat, 23 Feb 2019 11:22:09 +0800</pubDate><description><![CDATA[题意:一个魔法石可以分成m个普通石头，魔法石和普通石头占据的空间都是1，给你一个容量为n的容器，问你有多少种方案装满它。

思路:很容易的递推式f[n]=f[n-1]+f[n-m]。类似于斐波那契数列，我们可以用矩阵快速幂。

容易推出矩阵

，快速幂写一下就行了。

因为是线性递推式也可以用杜教BM，把前200项丢进去，答案就出来了。


//杜教BM
#include&amp;lt;bits/stdc...]]></description><category></category></item><item><title><![CDATA[codeforce 1118C Palindromic Matrix(模拟)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/87879315</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/87879315</guid><author>qq_37632935</author><pubDate>Fri, 22 Feb 2019 15:24:42 +0800</pubDate><description><![CDATA[题意：给你n*n个数，让你构造一个n*n的回文矩阵。如果没答案输出NO。

思路:暴力构造一下，奇数填中间。代码稍长一些。


#include &amp;lt;bits/stdc++.h&amp;gt;
using namespace std;
typedef long long ll;
int m[1005][1005];int a[1005];
int vis[1005];
int main()
{
	in...]]></description><category></category></item><item><title><![CDATA[sscanf，scanf输入string类型]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/87708275</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/87708275</guid><author>qq_37632935</author><pubDate>Tue, 19 Feb 2019 14:52:53 +0800</pubDate><description><![CDATA[sscanf函数


//取出前4个字符1234
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
int main()
{
	char str[100];
	sscanf(&quot;12345&quot;,&quot;%4s&quot;,str);
	printf(&quot;%s\n&quot;,str);
	return 0;
}



//字符串读入
#include&amp;lt;stdio.h&amp;gt;
..]]></description><category></category></item><item><title><![CDATA[UVALive - 4625(dp+二分)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/86549866</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/86549866</guid><author>qq_37632935</author><pubDate>Sat, 19 Jan 2019 11:00:28 +0800</pubDate><description><![CDATA[题目：给n个数，把它们分成m-1段，每段长度不超过d，且每段长度必须为偶数，让你最小化每段的半段权值。(注意是半段)

思路:如果没有半段限制的话，我们可以贪心从左到右将可行的分段尽量拉长。但是加上半段限制后，我们贪心的话就错了。


1
14 5 10
18 11 9 96 3 11 96 67 31 12 58 68 98 76


上面这组数据的答案是110，而从左到右的贪心得到的结果是12...]]></description><category></category></item><item><title><![CDATA[UVALive - 4794 (状压枚举子集)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/86543894</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/86543894</guid><author>qq_37632935</author><pubDate>Fri, 18 Jan 2019 17:39:25 +0800</pubDate><description><![CDATA[题意:给你一块x*y的巧克力，n个面积a[i]，每次只能横着或者竖着切一次，问你是否能切出来n块面积为a[i]的巧克力。

思路:n为15，可以想到状压所有状态，然后记忆化搜索，设立状态d[x][s],sum[s]表示集合为s的巧克力面积和就是当前要切的巧克力的面积，x表示当前要切的巧克力的长和宽的最小值，那么我们就知道当前巧克力的长和宽，当前状态向下转移时有两种方式，一种是把长分为两部分，一种是...]]></description><category></category></item><item><title><![CDATA[UVA - 10859 (树形dp，一个变量维护两个值)]]></title><link>https://blog.youkuaiyun.com/qq_37632935/article/details/86537512</link><guid>https://blog.youkuaiyun.com/qq_37632935/article/details/86537512</guid><author>qq_37632935</author><pubDate>Fri, 18 Jan 2019 11:58:59 +0800</pubDate><description><![CDATA[题意:给你一个森林，每个点可以放一台灯，这台灯会照亮和它相邻的边，然你求最少安装几台灯能照亮所有的边，并且保证灯的数量最少的情况下，被两台灯同时照亮的路尽可能多，输出灯的数量，同时被两台灯照亮的边数，被一台灯照亮的边数。

思路：很明显的树形dp，我们先考虑让灯最少的情况。用dp[i][0]表示当前节点没有灯，并且他相邻的边都有灯照亮所需灯的最小值。用dp[i][1]表示当前节点有灯，并且他相邻的...]]></description><category></category></item></channel></rss>