摘要: 题目传送门 这是一道并查集的题目,相信很多人都看出来了。 用一个类似Kurskal的东西求出最近的最大值。 对于一些可以划分在同一个部落里的边,我们一定是优先选择短边合并。 code: 阅读全文
posted @ 2017-09-25 21:49 Cptraser 阅读(258) 评论(0) 推荐(0) 编辑
摘要: WZRY 为了排位赛的Cjj神,最近耗尽气力来打WZRY。 Cjj神最近有N局预约的排位赛,其中第i局需要耗时Li的时间。因为浓浓的Gay情,Cjj神不能改变这些排位赛的的顺序。作为一个很有(mei)自制力的人,Cjj神计划用M+1天打完N局,为了能够活着见到第M+2天的太阳,他希望耗时最长的一天最 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】 吉儿是一家古董店的老板娘,由于她经营有道,小店开得红红火火。昨天,吉儿无意之中得到了散落民间几百年的珍宝——月亮之眼。吉儿深知“月亮之眼”价值连城:它是由许多珍珠相连而成的,工匠们用金线连接珍珠,每根金线连接两个珍珠;同时又对每根金线染上两种颜色,一半染成银白色,一半染成黛黑色。由于吉 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 从美国州际高速公路建筑者那里,奶牛们引进了一种路径编号系统,来给牧场之间的道路编号。他们已经把 N(1<=N<=25)个牧场,用 1 到 N 的整数编号。现在他们需要将牧场间的道路也编上不同的编号,编号可以从 1 到 2000.如:I9 和 I16。看下面一个例子,牧场编号为 1,2,3 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 一看便知,二分图最大匹配的裸题。 但是,用匈牙利算法的话,每一次的memset会超时,所以这里使用时间戳优化。 [时间戳] 记录每一次操作是第几次,只要不是现在这个操作的话就相当于“0”。 code: #include <bits/stdc++.h> #define MAXN 10001 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 由题意可得,这道题是求使一些行上的1是否能两两不同行,两两不同列。 于是我们就可以把1点的i与j连边,做一遍二分图匹配。 如果每一行即i都可以匹配到,那么就有解。 code: /******************************************************* 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 最小覆盖(cover)、、线段树 【题目描述】 给定 N 个区间[Li,Ri],需要你按照顺序选出一个区间序列使得[1,M]完全被覆盖。并且在选出来的序列中,某个区间[a,b]之前必须保证[1,a]都被已经选中的区间覆盖(即没有“断开”的地方)。求出最少需要选多少区间 【输入文件】 第一行两个整数 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 最短路径例题 今天特地学习了Dijkstra的堆优化(主要是慕名已久)。 我们需要一个堆来记录[编号,到编号这个点的最短路径值(当然只是当前的)] 与原来的Dijkstra操作基本一致,主要有以下几点: 1.将起点放入堆中 2.开始while循环 3.取出堆顶 4.如果已经拓展过就continue 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 带权并查集问题。 用fr[x]数组记录x战舰前(不包括自己)有几艘战舰,beh[x]数组记录x战舰后(包括自己)有几艘战舰。 并查集即可。 code: #include <cstdio> #include <cmath> #include <iostream> using namespa 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 又是一道BZOJ的水题。 DP,F[i]表示第i只鼹鼠出现后可以砸几只。 F[i]=max(F[i],F[j]+1); 但要满足time[i]-time[j]>=abs(x[i]-x[j])+abs(y[i]-y[j]) code: /************************** 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 ·背包 这可以说是一道背包的变形。 首先需要考虑到的是如何将ta转换为一个正常 的背包。 这些数据有一个让我们都十分不爽的地方就是有两个值。 所以我们就设置一个基准值,将失败的经验值当做基准值,这样就只剩一个win-lose的“背包价值”了。 接下来即进行0-1背包操作 最后输出时将减去 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 这是一道典型的记忆化搜索题。 f[x][y]表示以x,y为右下角的方案数。 code: #include <cstdio> #define mod 1000000007 using namespace std; int n,m,k,a[751][751],f[751][751]; int 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 这是一道单调栈的问题,单调栈维护所有数的最大值。 查询操作时只需要二分找答案即可,枚举栈内的数应该也不会超时。 code: /************************************************************** Problem: 1012 User 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 回文词 (palin.pas/c/cpp) 【问题描述】 回文词是一种对称的字符串——也就是说,一个回文词,从左到右读和从右到左读得的结果是一样的。任意给定一个字符串,通过插入若干字符,都可以变成一个回文词。你任务是写一个程序,求出将给定字符串变成回文词所需插入的最少字符数。比如字符串“Ab3bd” 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(793) 评论(0) 推荐(0) 编辑
摘要: 一下子又过去了≥7天(据上一次总结)。 在这几天中,我们刷了许多题,有水题也有难题,我们积累了很多经验。首先是: 要记得开long long。 要记得开long long。 要记得开long long。 这很重要,所以要说三遍。 在这几天中,我们不仅在判断题目的类型上功力大增,而且也对一些算法和数据 阅读全文
posted @ 2017-09-25 19:16 Cptraser 阅读(182) 评论(0) 推荐(0) 编辑