<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[天某的小窝]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/YoDReAMfY</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YoDReAMfY]]></copyright><item><title><![CDATA[HNOI2016 大数(number)]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/51286466</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/51286466</guid><author>YoDReAMfY</author><pubDate>Sat, 30 Apr 2016 15:15:34 +0800</pubDate><description><![CDATA[分析首先，我们要知道取模的几个性质： 
设p=a+b，q=a*b 
1.p%x=(a%x+b%x)%x 
2.q%x=(a%x*b%x)%x 
知道这两个性质之后，我们首先输入进要模的数x和字符串s，处理出一个后缀数组m，和一个po数组，m[i]表示字符串中从前往后数的第i位到结尾所组成的数字对x取模的结果是多少，po[i]表示10^i对x取模的结果。以样例来说明，m[3]表示1211对11取模的结]]></description><category></category></item><item><title><![CDATA[HNOI 2016 暴力之旅]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/51170034</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/51170034</guid><author>YoDReAMfY</author><pubDate>Sat, 16 Apr 2016 20:45:38 +0800</pubDate><description><![CDATA[Day1T1看到这题，我瞬间想到用暴力做。 
小小思考了一下，我便打起了暴力。 
是这样的： 
    题目每次给出了俩点，和一个限制ta和tb，于是乎，我便从一个点开始，往周围延伸。延伸的标准是酱紫的，一条线能否延伸仅当这条线的a和b满足a≤ta，b≤tb。每次延伸，把这条边记录下vis，以后遇到这条边不再延伸。然后边延伸边记录下所有延伸到的a和b的最大值ma和mb。 
    然后延伸到不能延伸]]></description><category></category></item><item><title><![CDATA[【Usaco2015 JAN】Cow Rectangles]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50783751</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50783751</guid><author>YoDReAMfY</author><pubDate>Wed, 02 Mar 2016 22:21:39 +0800</pubDate><description><![CDATA[很丑另一份代码还没有。。。。#include<cstdio>
#include<algorithm>
using namespace std;
const int maxm = 500 + 10;
const int maxn = 1000 + 10;
const int INF = 0xfffffff;
int pre[maxn][maxn], n, l, r, d, u;
char ch;
st]]></description><category></category></item><item><title><![CDATA[【Usaco2015 JAN】Moovie Mooving【DP】（发现自己有点不会写二分啊）]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50775586</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50775586</guid><author>YoDReAMfY</author><pubDate>Tue, 01 Mar 2016 20:56:11 +0800</pubDate><description><![CDATA[题目大意Bessie要在电影院里呆L分钟，这段时间他要看小型电影度过。电影一共N部，每部都播放于若干段可能重叠的区间，Bessie决不会看同一部电影两次。现在问他要看最少几部电影才能度过这段时间？ 注：必须看电影才能在电影院里呆着，同时一场电影可以在其播放区间内任意时间入场出场。输入4 100 
50 3 15 30 55 
40 2 0 65 
30 2 20 90 
20 1 0输出3链接点我查]]></description><category></category></item><item><title><![CDATA[【Usaco2016 FEB】Fenced In]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50768321</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50768321</guid><author>YoDReAMfY</author><pubDate>Mon, 29 Feb 2016 21:10:57 +0800</pubDate><description><![CDATA[首先，大膜htn 
然后，分析一下。 
实际上，画个图，一下就可以找出规律了。 
我们可以先处理出每一段门的费用，再排序，根据题目的特殊性，可以知道整个一行或一列的费用都可以很方便的表示出来。 
根据最小生成树的思想，每次可以找出最小的费用，显然将那一整行都连通一定是最优的。然后进一步分析，又可以看到一个问题。每次打开的时候，如果本来就有连通的，就不用打开了。这个问题很容易可以解决，因为我们每一次都]]></description><category></category></item><item><title><![CDATA[【Usaco2016 FEB】Load Balancing【线段树 + 二分】]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50760814</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50760814</guid><author>YoDReAMfY</author><pubDate>Sun, 28 Feb 2016 17:22:47 +0800</pubDate><description><![CDATA[大膜YZ哥题目大意给你一个矩阵，里面有些点，让你横向切一刀，纵向切一刀，使得得到的四个区域内的最大的点数最少。输入7 
7 3 
5 5 
7 13 
3 1 
11 7 
5 3 
9 1输出2分析
首先，我们要枚举纵向是从哪里分开（从左往右扫），可以用离散化进行优化。
然后，我们需要二分来找一个横向分开的最优位置。我们先假设每次都可以知道从mid分开后，四个区域内每个区域的点数，那么我们便可以知]]></description><category></category></item><item><title><![CDATA[Yura and Developers]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50617953</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50617953</guid><author>YoDReAMfY</author><pubDate>Mon, 01 Feb 2016 12:30:59 +0800</pubDate><description><![CDATA[Yura and Developers题目大意给出一个长度为n的区间，求其中有多少个区间，使得这个区间中所有元素的和减去这个区间中的最大值除以k的余数为0.代码#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
const int maxn = 3 * 1e]]></description><category></category></item><item><title><![CDATA[【UVALive】3029.City Game<C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50001661</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/50001661</guid><author>YoDReAMfY</author><pubDate>Mon, 23 Nov 2015 21:57:00 +0800</pubDate><description><![CDATA[#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char input[1001][1001],judge;
int up[1001][1001],Left[1001][1001],Right[1001][1001];
int main(){
    int m,n,lnear,rnear,answe]]></description><category></category></item><item><title><![CDATA[【NOIP2015】求和<C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49962875</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49962875</guid><author>YoDReAMfY</author><pubDate>Sat, 21 Nov 2015 11:10:13 +0800</pubDate><description><![CDATA[#include<cstdio>
#include<cstring>
using namespace std;
int main(){
    int n,m,cor;
    long sum=0;
    scanf("%d%d",&n,&m);
    long color[m+1][3][2],number[n+1],count[m+1][2];
    memset(count,0,siz]]></description><category></category></item><item><title><![CDATA[圈奶牛<计算几何><C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49912867</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49912867</guid><author>YoDReAMfY</author><pubDate>Wed, 18 Nov 2015 20:48:16 +0800</pubDate><description><![CDATA[#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct point{//x横坐标,y纵坐标.
        double x;
        double y;
}p[10000],chosen[10000];
bool cmp(point a,poin]]></description><category></category></item><item><title><![CDATA[糖果<DP><C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49644645</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49644645</guid><author>YoDReAMfY</author><pubDate>Wed, 04 Nov 2015 22:06:27 +0800</pubDate><description><![CDATA[程序#include<cstdio>
#include<cstring>
using namespace std;
int main(){
    int n,k;
    scanf("%d%d",&n,&k);
    long f[n+1][k],a[n+1];
    memset(f,0,sizeof(f));
    for(int i=1;i<=n;i++)
        scanf]]></description><category></category></item><item><title><![CDATA[导弹拦截<DP><贪心><C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49592785</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49592785</guid><author>YoDReAMfY</author><pubDate>Mon, 02 Nov 2015 22:00:49 +0800</pubDate><description><![CDATA[程序#include<cstdio>
#include<cstring>
using namespace std;
int main(){
    int i=-1,a[1001],f[1000],max,min,tot=0;
    memset(f,0,sizeof(f));
    while(scanf("%d",&a[++i])==1)
    {
        max=f[i];]]></description><category></category></item><item><title><![CDATA[求排列的逆序数<归并><C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49534187</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49534187</guid><author>YoDReAMfY</author><pubDate>Mon, 02 Nov 2015 21:02:42 +0800</pubDate><description><![CDATA[程序



#include
using namespace std;
void gb_b(int p[],int a[],int i,int j,int ans){
    int e=(i+j)/2,q=i,w=0;
    do{
        if(a[q]>a[e]) p[w++]=a[e++],ans++;
        else p[w++]=a[q++],p[w++]=a[e+]]></description><category></category></item><item><title><![CDATA[装箱问题<DP><C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49533275</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49533275</guid><author>YoDReAMfY</author><pubDate>Sat, 31 Oct 2015 16:15:07 +0800</pubDate><description><![CDATA[题目
题目:给出n个物品的体积,选取其中若干个物品装入容量为v的箱子中,剩余空间最小为多少?输出这个最小值.
输入格式: 
第一行,输入箱子的容量v.
第二行,输入物品的个数n.
接下来n行,输入每个物品的体积.
输出格式:仅一行,输出箱子最小剩余空间.
例子: 
input:
24
6
8
3
12
7
9
7
output:
0
分析
用f[v]来表示前i个物品放入容量为v的箱子中的最大体积,d]]></description><category></category></item><item><title><![CDATA[乘积最大<DP><C++>]]></title><link>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49532069</link><guid>https://blog.youkuaiyun.com/YoDReAMfY/article/details/49532069</guid><author>YoDReAMfY</author><pubDate>Sat, 31 Oct 2015 14:58:15 +0800</pubDate><description><![CDATA[题目
题目:给出一个长度为n的数.问:如何在数中添加k个乘号,使乘积最大?输出这个最大值.
输入格式: 
第一行,输入两个数n,k,中间有空格隔开.
第二行,输入这个长度为n的数.
输出格式:仅有一行,输出最大值.
例子: 
input:
4 2
1231
output:
62
分析]]></description><category></category></item></channel></rss>