自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Loi_whales 的坑

极坑的博主+极坑的博客=完美\(^o^)/

  • 博客(20)
  • 收藏
  • 关注

原创 NOIP前夕模板整理第二弹:数据结构

1、并查集 例题:家族 然而其实并查集的用处还有很多#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>using namespace std;int fa[100000];int find(int x){ return fa[x] == x?x:fa[x] = find(fa[

2016-11-13 21:51:39 391

原创 NOIP前夕模板整理第一弹:图论

最短路模板:SPFA 、 dijkstra 、floyd SPFA和dijsktra之前整理过了,直接放链接吧 点这里O(∩_∩)O floyd用处很广,可以用来求多源最短路,例题codevs1077 多源最短路这里放一下核心代码 for(int k = 1 ; k <= n ;k++) for(int i = 1 ; i <= n ; i++)

2016-11-12 21:50:48 464

原创 埃氏筛法与欧拉筛法

一、埃氏筛法 时间复杂度:O(nloglogn) 埃氏筛法的主要思想就是把小于√n的素数的倍数筛掉,剩下的就是素数 具体代码实现如下:int prime[MAXN],n;void Prime(int n){ int cnt =0; memset(prime,1,sizeof(prime)); prime[0]=prime[1]=0;//表示不是素数 for

2016-11-15 11:42:39 1184

原创 codevs1506传话(tarjan)

这个题多种解法,我用tarjan又写了一遍#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <stack>using namespace std;const int MAXN = 2000;int n,m,to[MAXN<<1],head[MAXN],cd[MAXN],b

2016-11-11 14:16:42 449

原创 Codeforces Round #378 (Div. 2)A题

A. Grasshopper And the StringOne day, the Grasshopper was jumping on the lawn and found a piece of paper with a string. Grasshopper became interested what is the minimum jump ability he should have in

2016-11-11 11:34:21 398 1

原创 codevs2404糖果

题目描述 Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww需要满足小朋友们的K个要求。幼儿园的糖果总是有限的,lxhgww想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的

2016-11-11 11:23:58 354

原创 codevs1242布局【USACO】

题目描述 Description 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食。奶牛排在队伍中的顺序和它们的编号是相同的。因为奶牛相当苗条,所以可能有两头或者更多奶牛站在同一位置上。即使说,如果我们想象奶牛是站在一条数轴上的话,允许有两头或更多奶牛拥有相同的横坐标。一些奶牛相互间存有好感,它们希望两者之间的距离不超过

2016-11-11 11:11:12 424 1

原创 codevs1384黑色星期五【USACO】

题目描述 Description 13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二……星期日的次数.这个测试从1900年1月1日到 1900+n-1年12月31日.n是一个非负数且不大于400. 这里有一些你要知道的:1900年1月1日是星期一.4,6,11和9月有30天.其他月份除了2月有31天.

2016-11-11 10:51:16 703

原创 noip2015day1 T1神奇的幻方

直接放代码吧,以前写的,十分暴力#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int w[100][100];int main(){ int n; scanf("%d",&n); w[1][n/2+1] = 1;

2016-11-09 21:23:30 378

原创 noip2015D1T2信息传递

题目描述 Description 有个同学(编号为 1 到)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为的同学的信息传递对象是编号为的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自

2016-11-09 21:12:52 349

转载 搞懂树状数组

转载自:http://blog.csdn.net/int64ago/article/details/7429868 一、树状数组是干什么的? 平常我们会遇到一些对数组进行维护查询的操作,比较常见的如,修改某点的值、求某个区间的和,而这两种恰恰是树状数组的强项!当然,数据规模不大的时候,对于修改某点的值是非常容易的,复杂度是O(1),但是对于求一个区间的和就要扫一遍了,复杂度是O(N

2016-11-07 15:23:37 340

原创 poj1308&&openjudge310:Is It A Tree?

这个题用并查集判断有没有森林就行了,注意一些细节的特特判,代码写的并不优美,刚开始思路有点乱,导致写了很多啰嗦的东西,然后就懒得精简了,-_-|||#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int fa[500000];int in[50000

2016-11-03 19:01:59 112

原创 openjudge每日推荐——9271奶牛散步

我们设f[n]为总的方案数,right[]为向右走的方案数,left[]为向左的方案数,up[]为向上的方案数,f[n] = right[n]+left[n]+up[n]; 我们发现向左走的方案数只能由前一步向右走和向上走转移过来,同样的,向右走由前一步向左走和向上走转移过来,向上走由向左,右,上转移过来,那么 right[n] = left[n-1] + up[n-1]; left[n] =

2016-11-03 16:22:20 1196

原创 openjudge每日推荐——碎纸机

#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int ans,num,m,vis[1000005],now[100],step[100],n;char s[100];void dfs(int pos,int sum,int cnt)//当前位置,

2016-11-03 16:09:10 399

原创 codevs1169传纸条

这个题跟方格取数是一样的额,不过是改成了从头到尾和从尾到头的两条路径,其实还是一样的。#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int n,x,y,v,ans,m;int sum=0;int s[60][60];int f[51][51][

2016-11-03 11:26:44 383

原创 codevs2188最长上升子序列

这个题,我是先找到比第k个元素小的并且在它前面的,和比它大在它后面的元素,放到一个数组里,就保证我们找的最长上升子序列里一定包含第K个元素了,在新的数组里跑一遍最长上升子序列就行了,我发现我的做法跟DQS神犇的一样,然而本蒟蒻只会O(n²)的方法啊,于是在T掉两个点后跑去学了O(nlog(n))的方法,就A了。。。。#include <cstdio>#include <iostream>#inc

2016-11-03 10:53:04 289

原创 codevs2980买帽子

将每个字符串翻转后得到一个新的字符串,再与原串找最长公共子序列就行了 (话说我竟然卡在了字典序的问题上良久,还是string好搞,用char的时候打渣了WA了几次,就不想用它了)#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int dp[1000]

2016-11-03 10:47:25 289

原创 codevs1058合唱队形

初始化的时候出了点小问题导致调试了n~久,真是悲催 这个题目我是先找到所有的拐点,再以每个拐点为终点和起点跑最长上升下降子序列 再取最大的和,这也就是队形人数最多的情况,也是删去人数最少的情况#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;int

2016-11-01 15:23:57 248

原创 codevs1044拦截导弹

这个题第一问是求最长下降子序列,第二问可以转化成求最长上升子序列,为什么? 因为我们每遇到有hi < hj的情况(i < j)都要再使用一枚导弹,因为导弹只处理hi >hj的情况嘛,很好理解的吧 所以代码如下: (完全可以更短)#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using

2016-11-01 10:48:21 374

原创 codevs2598编辑距离问题

/* 在最终状态都是A串转换到B串 可以进行修改,删除和添加,dp[i-1][j]是把第一个串的当前字符删除, 这样就是搜到上一个字符的操作数+1,dp[i][j-1]+1是在上一种状态下把串1 添加到第二个串上,操作数+1*/#include <cstdio>#include <iostream>#include <cst

2016-11-01 10:43:15 281

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除