自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 卡特兰数

卡特兰数,以下文字内容搬运自这个博客1 通项公式:h(n)=C(n,2n)/(n+1)=(2n)!/((n!)*(n+1)!)2递推公式:h(n)=((4*n-2)/(n+1))*h(n-1); h(n)=h(0)*h(n-1)+h(1)*h(n-2)+…+h(n-1)*h(0).3前几项为:h(0)=1,h(1)=1,h(2)=2,h(3)=5,h(4)=14,h(5)=42,……4应用场景:a.

2017-04-28 21:59:55 327

原创 zoj 3961 Let's Chat

题目链接:Let’s Chat题目大意:给你一个n,m,a,b,分别代表线段总长度,需要求的连续的长度,第一个集合所有的区间,第二个集合所有的集合,问你长度为m并且两个集合重合的不同线段有多少种题目思路:这个题目是比较简单的吧,学弟暴力过了,没看他代码太长了,看网上代码发现一个非常好的解法,写两个指针分别从头开始扫,一遍一遍交换区间,感觉是一个很简短的写法,左端点是当前A区间和B区间左端点的最大值,

2017-04-27 22:22:42 538

原创 zoj 3960 What Kind of Friends Are You?

题目链接:What Kind of Friends Are You?题目大意:给你一个T,代表T组数据,然后每组数据一个n一个q,代表n个朋友q个问题,然后是一个姓名的集合,代表当前所知道姓名的集合,然后是q次查询,每次查询都有一个姓名集合,之后是一个n*q的矩阵,代表第i次问询的姓名在第j个集合里出现没有,出现为一,否则为零,问是否存在且只存在一个姓名满足这个条件,如果存在则输出那个

2017-04-27 17:00:33 416

原创 zoj 3959 Problem Preparation

题目链接:Problem Preparation题目大意:给你一堆数,需要做到的是最小值必须是1,且1的个数不少于两个,最大值只能有一个,相邻两个数之间差的绝对值不能大于2(如果相邻两个数有最大值就不做这个要求),数的个数不能小于10或者大于13。题目思路:直接按照题目来写和判断就可以了#include using namespace std;int main(){

2017-04-26 19:11:44 355

原创 zoj 3958 Cooking Competition

题目链接:Cooking Competition题目大意,给你四种操作,每种操作的双方会获得不同分数,问你最后谁获胜;题目思路:水题,直接模拟就可以了#include using namespace std;typedef long long ll;int a[4] = {1,0,1,-1},b[4] = {0,1,1,-1};int main(){

2017-04-26 19:05:41 511

原创 hdoj 1241 Oil Deposits

题目链接:Oil Deposits题目大意:#是油田,可以搜索八个方向能够到的#都是一块油田,问一共有几块油田题目思路:dfs套路题,直接按照题目内容写就可以了#include using namespace std;int n,m;char mp[105][105];int dir[8][2] = {{0,1},{0,-1},{1,0},{-1,0},{1

2017-04-25 18:19:12 309

原创 poj 3984 迷宫问题

题目链接:迷宫问题题目大意:给你一个5*5的迷宫,要求输出从左上角到右下角的最短路劲,1为墙,不能访问题目思路:用bfs去写,用一个数组来保存路径,模拟队列,输出路径的时候递归输出就可以了,起点和终点一定是可以访问到的,具体看代码#include #include #include #include #include using namespace std;

2017-04-25 18:13:06 322

原创 poj 2251 Dungeon Master

题目链接:Dungeon Master题目大意:给你一个三维的空间,然后给你起点和终点,中间有墙壁不能访问,问是否能从起点访问到终点,如果能,输出最短路径题目思路:水题,写一个简单的bfs就可以了#include #include #include #include #include #include using namespace std;int k,n

2017-04-25 17:39:20 303

原创 hdoj 6019 MG loves gold

题目链接:MG loves gold题目大意:给你一个序列,然后要分出来很多连续的小序列,里面不能有重复的数字,问最少需要分多少序列。题目思路:数据比较大,所以需要用到STL吧,map,vector,set什么的都可以去玩,我用的vector,每次加数据的时候判断一下有没有在数列中出现,如果出现的话,就清空vector然后cot++,具体看代码#include usin

2017-04-23 20:15:21 407

原创 poj 1321 棋盘问题

题目链接:棋盘问题题目大意:给你一个n*n的棋盘,然后有#和.两种状态,#代表棋盘,.代表空白,现在要求你在棋盘上下k颗棋子并且这k颗棋子没有在同一列的,问你一共有多少种情况题目思路:数据不大,直接dfs就可以了,dfs里面存两个值,一个是行数,一个是当前放了多少棋子,具体看代码#include #include #include #include #inclu

2017-04-23 17:22:11 335

原创 fjutoj 2541 黑暗森林法则

题目链接:黑暗森林法则题目大意:给你一个n代表有n种动物,然后n行,每一行代表这个东西能被K个动物捕食,然后给出捕食的k个动物编号,然后让你算食物链的条数。题目思路:这道题最主要的问题在于最高等级的动物和最低等级的动物不止一种,所以刚开始想存食物链顶端和低端的所有动物,然后dfs每一个低端动物,判断是否访问到某一个高端动物,后来发现不行,因为状态太多,所以果断T,然后采用记忆化搜索的方式去

2017-04-23 16:05:29 805

原创 SWPUACM省赛other团队校内选拔赛暨第一次蓝桥杯国赛集训题解

今天的比赛题目是一些算法裸题或者简单题,比赛链接在这里比赛网址A:快排傻题,会用sort就好了,这个拿来筛只会冒泡排序的非ACM选手#includeusing namespace std;int a[100100];int main(){ int i,j,k; int n; while(scanf("%d",&n)!=EOF)

2017-04-23 14:55:05 807

原创 蓝桥杯 带分数

题目链接:带分数题目大意:给你一个n,然后问你有多少种方法使得a+b/c等于n并且a,b,c分别由1到9的数字组成且数字出现且只出现一次题目思路:用next_permutation去生成一下1到9的排列一个一个去判断就可以了,枚举加号和乘号出现的位置,感觉跑的速度还蛮快,而且代码量还极小,这道题还可以dfs写,不再赘述#include using namespace s

2017-04-19 21:31:10 488 2

原创 蓝桥杯 最大最小公倍数

题目链接:最大最小公倍数题目大意:给你一个N,然后从这1~N这N个数中取出任意三个数(可以重复),求三个数的最小公倍数,然后求任意三个数中能取到的最大值题目思路:看样例,猜题意,9的答案是9,8,7,然后成功猜出来奇数是直接n*(n-1)*(n-2),因为n和n-2都是奇数,公约数是1,n*(n-2)也是奇数,跟n-1的公约数也是1,所以答案就是n*(n-1)*(n-2),然后打个n^3的

2017-04-19 21:25:29 539

原创 Codeforces Round #409 (Div. 2) B. Valued Keys

题目链接:Valued Keys题目大意:给你两个长度相同的串x和z,问是否存在一个y串使得min(x,y) = z,min(x,y)代表求出两个串里面a[i]和b[i]最小的那个题目思路:实际上只需要看z每个字符串是不是都小于等于x的的每个字符串,如果不是直接-1,否则直接输出z就可以了#include using namespace std;typedef long long

2017-04-17 09:20:58 383

原创 Codeforces Round #409 (Div. 2) A. Vicious Keyboard

题目链接:Vicious Keyboard题目大意:给一串只包含V和K的字符,最多替换一次V为K或者K为V,问字符串中最多能出现多少次VK题目思路:这题都没能一次AC啊,真菜,直接算出来最开始有多少个V看,然后遍历整个字符串,把V替换成K,K替换成V再算,每次求最大值就可以了#include using namespace std;typedef long long ll;int

2017-04-17 08:47:17 756

原创 N皇后问题模板

贴一个N皇后问题的板子,ans保存的是第i个方案(按字典序排)的第j列的位置(一个数字,代表在第几列),也就是路径,ind代表的是方案数,初始化它为1,所以结果需要减1,row,dia1,dia2代表的某一行,某一列,某一斜线有没有被访问过,所以需要全部初始化为true,dfs是从1开始的int n,ind,ans[1500][100];bool row[1200],dia1[2500],dia

2017-04-16 17:38:18 485

原创 hdoj 2553 N皇后问题

题目链接:N皇后问题同样是一道很裸的N皇后问题,直接贴板子,不过需要注意的是这道题目可以存一个表扔进去,否则会超时#include using namespace std;int n,ind,ans[1500][100],cot[15];bool row[1200],dia1[2500],dia2[2500];void dfs(int q){ if(q > n){

2017-04-16 17:33:56 397

原创 tyvj 1080 N皇后

题目链接:N皇后按字典序算N皇后的前三组数据和总共多少组数据,直接按照N皇后去搜就可以了#include using namespace std;int n,ind,ans[100005][15],cs;bool row[15],dia1[100005],dia2[100005];void dfs(int q){ if(q > cs){ ind++;

2017-04-16 17:18:33 573

原创 九度OJ 1140 八皇后

题目链接:八皇后这道题目实际上就是八皇后的简单拓展,在简单的八皇后上变化了一下,要求你去保存每种方式的路径,所以在dfs里面需要一个二维的ans数组老保存每一次操作每一行的位置#include using namespace std;int n,ind,ans[96][10];bool row[12],dia1[25],dia2[25];void dfs(int q){

2017-04-16 16:52:09 458

原创 蓝桥杯 报时助手

题目链接:报时助手直接按照题意去模拟就好了,注意一下m等于零的时候是输出o'clock不是zero(被这个点坑无数次,一直没看题意)#include using namespace std;int main(){ string tim[21] = {"zero","one","two","three", "four","five","six","seven","eigh

2017-04-16 16:07:46 1110

原创 SPFA模板

SPFA实际上就是一个利用队列慢优化的一个算最短路的算法#include using namespace std;const int maxn = 205;int n,m;int d[maxn],inq[maxn];vector >E[maxn];void init(){ for(int i = 0;i < maxn;i++) E[i].clear(); for(

2017-04-13 22:25:25 383

原创 tyvj 1031 热浪

题目链接:热浪题意就是给你一堆路径,然后让你找某两个点之间的最短路,然后一道裸的最短路,写了个SPFA#include using namespace std;const int maxn = 3005;int n,m,s,t;int d[maxn],inq[maxn];vector >E[maxn];void init(){ for(int i = 0;i < ma

2017-04-13 22:20:29 517

原创 hdoj 1874 畅通工程续

题目链接:畅通工程续题意一读就知道是最短路,给你n个城镇,m条路,然后给你s,t,问你最短路是多少,数据量很小,直接floayd做就可以了,写一个邻接表代表距离#include using namespace std;int n,m,dp[1005][1005],x,y,z,s,t;int main(){ while(cin>>n>>m){ for(int

2017-04-13 09:32:42 299

原创 2017年SCU校赛总结

这是某个我不认识的人在讨论里面催我做总结的,最近太忙啦,画个圈圈诅咒你,哼╭(╯^╰)╮        今年差点没去成scu校赛是真的,邀请赛的名单在周四才确定下来给了scu他们那边的负责人,而周天就比赛,为什么会这么晚才知道呢?因为UESTC校赛打完后准备回来休息的,所以下意识的不会以为scu校赛就会安排在UESTC校赛的后一周,后面B站上的cuit小迷弟加了集训队的群,然后他们那边

2017-04-12 18:03:49 608 1

原创 soj 4559 Easy Problem

题目链接:Easy Problem确实是Easy Problem啊,T组数据,每组一个n,代表n个点,分别给出x坐标和y坐标,然后现在需要做的是把所有点的y轴的值放一样,然后x轴上的值连续,直接排一下序,y轴上的值全部变成和中点一样(不需要考虑奇偶,结果都一样),x轴的值从中点往前扫然后递减,从中点往后扫递增,这样结果就是最优的啦,然后这题一开始的思路确实是正确的,然后代码写的特别挫,

2017-04-12 16:54:12 431

原创 soj 4558 Coupon

题目链接:Coupon题意大致就是给你n对数,每对数代表一场电影,k张优惠券,m的钱,然后这n场电影分别有两个值,一个是不使用优惠券的价格,一个是使用优惠券的价格,然后问你在k张优惠券m钱的限制下能够看多少场电影,这道题贪心的做法是错误的,因为可以被无情的hack掉,但是可以AC这道题,所以数据没有考虑到一些情况吧,怀疑标程写错,还是给出贪心做法,正解以后会找时间补掉,贪心想法是不管打

2017-04-12 16:47:14 612

原创 Codeforces Round #408 (Div. 2) B. Find The Bone

题目链接:Find The Bone题意是给你n,m,k三个数,n代表有n个位置,m代表有m个分部在1到n的洞,k代表有k种操作,然后给你m个洞的位置,然后给你k对数,表示交换这两个位置的东西,然后有一个球,初始位置为1,问最后的时候这个球在哪个位置,如果某一个时刻这个球在洞里,就不能再动了。我的做法是把所有的洞存在一个set里面,然后每次操作之前判断一下球是不是在洞里,如果不在再看交

2017-04-12 15:54:12 352

原创 Codeforces Round #408 (Div. 2) A. Buying A House

题目链接:Buying A House题意很简单,给你n,m,k,代表总共的房子数,妹子住的房子位置,k元钱,然后是n个数,0代表这个房子有人住,否则代表这个房子的价格,问你能在k元里买到的离妹子最近的房子距离妹子所在地有多远,两房子之间距离为定值10m。从前往后扫一遍就可以了,我的做法是从妹子所在的房子往后扫找最小距离,再往前扫找最小距离,两个再取最小就可以了#include #inclu

2017-04-12 15:45:20 294

原创 nyoj 143 第几是谁?

题目链接:第几是谁?跟nyoj 139类似,只不过这道题目是逆康拓展开的裸题罢了#include using namespace std;typedef long long ll;ll t,m,f[13];char ss[12];void reverse_cantor(ll n,ll k){ ll i,j,t,vis[13] = {0}; char s[13];

2017-04-07 20:48:02 359

原创 nyoj 139 我排第几个

题目链接:我排第几个题目就是给你一个序列,问你这个序列在字典序里面排第几。典型的康拓展开题目,模板见博客:#include using namespace std;typedef long long ll;ll f[105],t;char ss[15];ll cantor(char str[]){ int len = strlen(str); ll ans =

2017-04-07 20:16:38 288

原创 康拓展开和逆康拓展开

贴一个康拓展开和逆康拓展开的模板吧,康拓展开就是给你一个字符串让你算按照字典序排这个字符串应该出现在什么地方,逆康拓就是给你位置,让你算这个字符串是什么:康拓展开:ll cantor(char str[]){ int len = strlen(str); ll ans = 0; for(int i = 0;i < len;i++){ int tmp

2017-04-07 19:48:09 975

原创 tyvj 1028 Bessie的体重问题

题目链接:Bessie的体重问题题意很简单,给你h和n,分别代表可以的最大数量和可以选择的n个数,,直接

2017-04-06 20:41:28 529

原创 CDOJ 31 饭卡(card)及HDOJ 2546 饭卡

题目链接UESTC饭卡HDOJ饭卡这道题目实际上就是一道01背包的变形,只不过v[i]和w[i]相等,并且还要提前减掉一个五,我们将总的金额减去五,然后对剩下的V-5进行背包,并且留下最大的值给最后的剩余的五处理,具体看代码#include using namespace std;int main(){ int n,V,w[1005],dp[1005]; while(c

2017-04-06 20:31:04 424

原创 hdoj 2602 Bone Collector

题目链接:Bone Collector01背包裸题,不多说,记住一维的转移方程就可以AC这道题目了#include using namespace std;int main(){ int t,n,V,v[1005],w[1005],dp[1005]; cin>>t; while(t--){ memset(dp,0,sizeof(dp));

2017-04-06 20:07:52 283

原创 tyvj 1017 冗余关系

题目链接:冗余关系        很蠢的一道题目嘛,并查集裸题,给你n个关系,判断有几个关系是不需要的(我们可以从之前的关系中推出来),只需要判断当前两个值是不是在一个集合里面就可以了,在就证明多余,其他看代码#include using namespace std;int father[1005];int Find(int x){ if(x == father[x]) r

2017-04-06 18:02:18 520

原创 USACO 阶乘

题目链接:阶乘        这个oj是我们学校自己的oj,USACO实在是太不好找题目做了,所以爬了一些题目到我们自己的oj上写题。这道题目的题意实际很简单的,求k的阶乘最后一位的非零的数字,这道题目跟hdoj 1066(poj 1150)是类似的,不过hdoj 1066(poj 1150)数据更强,用下面的代码会超时,所以会采用找循环节的方法,具体见博客hdoj 1066(poj 1150

2017-04-06 16:17:50 605

原创 codevs 1008 选数

题目链接:选数        题意很简单,给你n个数,从中选出k个数,问k个数的和为素数的情况有多少种,因为n的范围是20,所以很容易的想到深搜,然后只需要判断当前位置的数取还是不取就可以了,具体看代码#include using namespace std;int n,k,a[25],cot;bool isprime(int s){ for(int i = 2;i*i <

2017-04-06 15:21:53 714

原创 2017年UESTC第十五届校赛总结

本来是信心满满的过去说要写4题,结果成功一题滚粗,真的是越来越菜了啊,跟两个大一的学弟过去打的比赛,没有跟另外两个大二的同学组(实在是因为那两个大二的太不努力,从来不打cf、tc、bc什么的,但是好像学弟一碰到具体的算法题就什么都不会了,然后自己又菜的一批,准备以后让学弟开数学题,大模拟?或者还是跟大二的组一下?不知道,现在对队友的需求再一次陷入迷茫)其实根本就不知道UESTC什么时候校赛的,

2017-04-06 14:53:05 836 5

原创 SWPU-ACM集训队周赛之个人赛(4-3,蓝桥杯模拟赛)----题解

今天的比赛题目是今年蓝桥杯的模拟赛原题,所以题解大概是可以在网上给搜索到的,但是希望同学们都是本着一个公平公正的态度来打这一场比赛的,这一场比赛大概前两题做出来,代码填空做对,编程大题大概一题半就可以拿到省一了,因为这次蓝桥杯官方的模拟赛,比赛连接在这里蓝桥杯模拟赛A:题意杀,可能很多同学把18xx里面的x当成了题目描述中的x,实际上两者是没有关系的,给出这样一个东西实际上是给

2017-04-03 19:03:13 684

空空如也

空空如也

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

TA关注的人

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