<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[爆米]]></title><description><![CDATA[业精于勤而荒于嬉   行成于思而毁于随]]></description><link>https://blog.youkuaiyun.com/kun768</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kun768]]></copyright><item><title><![CDATA[本博客停止更新，请访问新博客]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/45318017</link><guid>https://blog.youkuaiyun.com/kun768/article/details/45318017</guid><author>kun768</author><pubDate>Mon, 27 Apr 2015 22:33:55 +0800</pubDate><description><![CDATA[本博客停止更新，请访问新博客
如果优快云上有啥动态，可能还会回来的
网站域名：www.zzkun.com
欢迎访问~~~]]></description><category></category></item><item><title><![CDATA[UVa 10285 Longest Run on a Snowboard  [DP]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/45076935</link><guid>https://blog.youkuaiyun.com/kun768/article/details/45076935</guid><author>kun768</author><pubDate>Thu, 16 Apr 2015 16:25:48 +0800</pubDate><description><![CDATA[题意：给定一个整数矩阵，找到一条严格递减的最长路。
简单的动规题目，dp[i][j]表示走到(i, j)所走过的最长步数，向四个方向转移状态即可。
#include 
using namespace std;

const int maxn = 105;
string str; int r, c;
int a[maxn][maxn], dp[maxn][maxn];
const int dir]]></description><category></category></item><item><title><![CDATA[UVa 1218 Perfect Service  [DFS+DP]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/45039383</link><guid>https://blog.youkuaiyun.com/kun768/article/details/45039383</guid><author>kun768</author><pubDate>Tue, 14 Apr 2015 11:11:34 +0800</pubDate><description><![CDATA[题意：给定一个树形的机器结构，安装服务器，每台服务器恰好跟一台服务器相邻，问最少装几台服务器。
首先DFS把树建立起来，然后动规求解，注意设置无穷大inf后累加要防止超int范围。
#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using]]></description><category></category></item><item><title><![CDATA[第三届ACM山东省赛 Pick apples  [贪心+动规]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/45014379</link><guid>https://blog.youkuaiyun.com/kun768/article/details/45014379</guid><author>kun768</author><pubDate>Sun, 12 Apr 2015 21:42:25 +0800</pubDate><description><![CDATA[超大背包问题，刚开始想复杂了。分段填充背包，前面一大部分用性价比最高的填充，最后一部分动规就可以了。
题目链接：http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2408


Pick apples


Time Limit: 1000ms   Memory limit: 165536K  有]]></description><category></category></item><item><title><![CDATA[ZOJ 3326 - An Awful Problem]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44981819</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44981819</guid><author>kun768</author><pubDate>Fri, 10 Apr 2015 16:56:07 +0800</pubDate><description><![CDATA[题意：给定一个日期范围，判断月和日均为素数的天数。
比较水的题目，for循环中的？：判断语句、日期的打表，可以大幅精简代码。
#include 
#include 
using namespace std;


int day1[15] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //闰年
int day2[15] = {0, ]]></description><category></category></item><item><title><![CDATA[HDU 1029 - Ignatius and the Princess IV]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44979899</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44979899</guid><author>kun768</author><pubDate>Fri, 10 Apr 2015 15:10:42 +0800</pubDate><description><![CDATA[题意：给定N个数，选出其中数量大于(N+1)/2的数
两种方法实现，第一种方法排序，选择中间的那个数。第二种方法搜一遍。
#include 
#include 
#include 
#include 
#include 
using namespace std;

int a[1024000];

int main()
{
    int n;
    while(cin >> n){
   ]]></description><category></category></item><item><title><![CDATA[POJ 2437 - Muddy roads  [贪心法]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44948617</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44948617</guid><author>kun768</author><pubDate>Wed, 08 Apr 2015 23:11:45 +0800</pubDate><description><![CDATA[题意：给定n个泥坑路面的初末位置，判断最少需要几个桥才能覆盖这些路面。
贪心法，从每个泥坑的开始位置建桥，然后判断是否覆盖后面的路面，就是分类讨论了。
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

struct Seg{
	int l, r;
	Seg(int l = 0, i]]></description><category></category></item><item><title><![CDATA[UVa 11584 - Partitioning by Palindromes  [动规]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44926755</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44926755</guid><author>kun768</author><pubDate>Tue, 07 Apr 2015 22:17:26 +0800</pubDate><description><![CDATA[题意：给定一个字符串，判断能划分成尽量少的回文串的数量。
dp[i]代表的状态为字符串前i个字符所能划分成的最少回文串的数量。判断回文串可以用递归来判断。
#include 
#include 
#include 
#include 
using namespace std;

char str[1024];
int dp[1024];
const int inf = 0x7f7f7f7f;
]]></description><category></category></item><item><title><![CDATA[POJ 2385 - Apple Catching  [DP]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44905823</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44905823</guid><author>kun768</author><pubDate>Mon, 06 Apr 2015 21:02:58 +0800</pubDate><description><![CDATA[比赛时不会动规，现在拿出来再做一遍。

dp[i][j]表示在i时刻使用j次转移得到的最多苹果数
#include 
#include 
#include 
using namespace std;

int a[1024], dp[1024][35];

int main()
{
    int n, w;
    cin >> n >> w;
    for(int i = 1; i <]]></description><category></category></item><item><title><![CDATA[HDU 1159 - Common Subsequence [最长公共子序列]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44904445</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44904445</guid><author>kun768</author><pubDate>Mon, 06 Apr 2015 19:05:01 +0800</pubDate><description><![CDATA[动规简单题，dp[i][j]表示的状态为字符串a.substr(0, i)和b.substr(0, j)的最长公共子序列。
#include 
#include 
#include 
#include 
using namespace std;

int dp[1024][1024];

int main() {
    string a, b;
    while(cin >> a >> b)]]></description><category></category></item><item><title><![CDATA[UVa 12563 - Jin Ge Jin Qu hao [DP]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44904361</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44904361</guid><author>kun768</author><pubDate>Mon, 06 Apr 2015 18:55:20 +0800</pubDate><description><![CDATA[题意：给定几首歌的长度，在规定时间内，选择尽量多的曲目，在此前提下选择时间尽量长的歌。
动态规划基础题，刚开始把条件看反了。dp[j]代表在j时间能够唱的最多曲目。
#include 
using namespace std;

int dp[10240], ti[10240];

int main()
{
    int T, kase = 0; cin >> T;
    while(T-]]></description><category></category></item><item><title><![CDATA[UVa 1025 - A Spy in the Metro [DP]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44782881</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44782881</guid><author>kun768</author><pubDate>Tue, 31 Mar 2015 17:58:52 +0800</pubDate><description><![CDATA[动态规划基础例题，要理解状态和状态转移方程。。。
#include 
using namespace std;

int kase = 0;
int n, T, t[80];
int M1, M2, st1[64], st2[64];
bool has_train[512][64][2];
int dp[512][80];
const int INF = 1<<8;


int main() {]]></description><category></category></item><item><title><![CDATA[UVa 1611 - Crane  [构造法]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44621351</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44621351</guid><author>kun768</author><pubDate>Wed, 25 Mar 2015 14:32:00 +0800</pubDate><description><![CDATA[这道题有点像翻煎饼那题，方法不限，只要次数在9^6之内即可。
从前到后依此选择数，最多只需要两次就可以将每个数放到正确位置。
#include 
using namespace std;

int a[10240];

void change(const int l, const int r){
    for(int i = l, j = l+(r+1-l)/2; j <= r; ++i, ]]></description><category></category></item><item><title><![CDATA[UVa 11925 - Generating Permutations]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44461145</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44461145</guid><author>kun768</author><pubDate>Thu, 19 Mar 2015 17:26:54 +0800</pubDate><description><![CDATA[这题用了冒泡排序的思想，不过紫书上的描述有误，建议参考原题。
#include 
using namespace std;

deque a;
vector res;

bool is_order(){
	for (int i = 1; i != a.size(); ++i)
		if (a[i] < a[i-1])
			return false;
	return true;
}
int ma]]></description><category></category></item><item><title><![CDATA[HDU 1016 - Prime Ring Problem  [简单DFS]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44358565</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44358565</guid><author>kun768</author><pubDate>Tue, 17 Mar 2015 23:16:52 +0800</pubDate><description><![CDATA[不想说这题有多么水了，最简单的DFS题了，但是！我花了N天在杭电用G++交了20多遍一直超时，最后改C++交过了！！
这是什么情况！！无语了！！
#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
#include 

const int maxn = 1024;
bool checked[maxn] = { 1, 1 };
int pri[]]></description><category></category></item><item><title><![CDATA[UVa 12627 - Erratic Expansion]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44277657</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44277657</guid><author>kun768</author><pubDate>Sun, 15 Mar 2015 15:52:07 +0800</pubDate><description><![CDATA[这题关键就是递推公式，注意紫书上推的c(k)那里貌似有点问题，应该是c(k-1)。
另外2^k方的计算可以用1
#include 
using namespace std;
using LL = long long;

LL C[32] = {1};
LL g(LL k, LL i){
    if(i  (1LL<<k)) return 0;
    if(k <= 0) return 1;]]></description><category></category></item><item><title><![CDATA[UVa 11636 - Hello World!]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44259829</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44259829</guid><author>kun768</author><pubDate>Sat, 14 Mar 2015 15:16:16 +0800</pubDate><description><![CDATA[最水的题，挺简单，用数学做的，刚开始判断负数写成了-1失误超时了.
#include 
using namespace std;

int main()
{
    int n, kase = 0;
    while(cin >> n, n > 0)
        printf("Case %d: %d\n", ++kase, (int)ceil(log2(n)));
    return ]]></description><category></category></item><item><title><![CDATA[UVa 11093 - Just Finish it up]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44243889</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44243889</guid><author>kun768</author><pubDate>Fri, 13 Mar 2015 17:25:57 +0800</pubDate><description><![CDATA[循环遍历数组即可，注意临界条件的判断。
#include 
using namespace std;
const int maxn = 102400;

int p[maxn], q[maxn];

int main()
{
    //freopen("in.txt", "r", stdin);
    int T; cin >> T;
    for(int t = 1; t <= T; +]]></description><category></category></item><item><title><![CDATA[UVa 1149 - Bin Packing [贪心]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44243859</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44243859</guid><author>kun768</author><pubDate>Fri, 13 Mar 2015 17:23:06 +0800</pubDate><description><![CDATA[这题算贪心中最简单的，属于背包问题吧，写的效率有点低，用数组加指针控制应该更好。
#include 
#include 
#include 
#include 
#include 
using namespace std;

int main()
{
    int T; cin >> T;
    while(T--){
        deque a;
        int n, k; c]]></description><category></category></item><item><title><![CDATA[POJ 1328 - Radar Installation  [贪心]]]></title><link>https://blog.youkuaiyun.com/kun768/article/details/44134589</link><guid>https://blog.youkuaiyun.com/kun768/article/details/44134589</guid><author>kun768</author><pubDate>Sun, 08 Mar 2015 18:06:22 +0800</pubDate><description><![CDATA[Description


Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation,]]></description><category></category></item></channel></rss>