- 博客(12)
- 收藏
- 关注
原创 HDU 5400 Arithmetic Sequence
题目链接题意:n个数,两个公差d1, d2求符合要求的子序列 [l, r](1≤l≤r≤n) 数量要求:存在点i(l 思路:枚举每个点,算出每个点向左向右符合条件的数有几个(自己本身算一个)记为 l[i] 和 r[i] l[i] * r[i] 就是以i点为分割点符合条件的子序列个数代码如下:#include#include#include#include#i
2015-08-19 15:32:38 582
原创 HDU2491 Priest John's Busiest Day
题目链接题意:有n个人要进行乒乓球比赛,每个人都一个能力值,每个人出现的次序就是他们住的位置现在要求进行一场比赛,三个人,裁判的能力值在两个选手之间,住的位置也在两个人的之间问这种比赛一共可以进行多少次思路:用树状数组做,否则TLE,先从左到右扫一遍,计算每点左边大的个数和小的个数,再从右到左扫一遍,计算每点右边大和小的个数,然后交叉相乘取和就可以了代码如下:
2015-08-17 23:07:34 717
原创 HDU 2491 Priest John's Busiest Day(贪心)
题目链接题意:n场婚礼给定每场婚礼的开始和结束时间,要求每场婚礼至少举行一半以上(不包括一半)如果可行输出YES,否则输出NO思路:算出每场婚礼的至少要举行的时间t, 最早的结束时间mid以最早结束时间mid为第一变量,开始时间s为第二变量从小到大排序用cnt记录举办完每场婚礼的结束时间分三种情况:①加参前当婚礼的时间够不一半②果加参婚礼时婚礼已开始,结
2015-08-17 20:47:51 710
原创 CodeForces 318D Ants
题目链接题意:有n只蚂蚁和m次询问n只蚂蚁初始全部位于起点(0,0)处,每4只蚂蚁在同一格就会以该格为中心向上下左右四个方向爬一格一只向上,一只向下,一只向左,一只向右如果每个格子内的蚂蚁数量 问你当所有的蚂蚁都停止运动后,给你任意的(x, y),输出该格子内的蚂蚁数量思路:模拟+暴力因为询问x,y会有负的,所以不妨设起始坐标为(N,N),因为起始位置的蚂蚁
2015-08-17 10:56:01 944
原创 Codeforces Round #316 (Div. 2) D Tree Requests
题目链接题意:给定n个点的树,m个询问1是root,下面给出2——n每个点的父节点,每个点有一个字母下面n个小写字母给出每个点的字母。下面m行给出询问:询问形如 (u, deep) 问u点的子树中,距离根的深度为deep的所有点的字母能否在任意排列后组成回文串,能输出Yes.不能输出No根到根的deep = 1,以此类推。思路:
2015-08-16 10:58:51 858
原创 zoj1163 The Staircases(基础dp)
题目链接题意:给你一个n,问你有多种摆台阶的方法。要求下面的格子数要严格的大于上面的格子数,台阶至少要两层及以上(所以最后输出结果要-1)还有台阶是倒着看的,倒着看的,最右边的是最底层的,我……内心是极度奔溃的……也就是说我们只要枚举最右边的即那条最长的边 h 即可,那么剩余的就是n - h,这显然已经是算出来的初始化dp[0] = 1,因为任意n都可以摆出一层。代码如下:
2015-08-14 17:05:53 758
原创 Codeforces Round #316 (Div. 2) C. Replacement
题目链接简单模拟,每连续的'..'合并成'.'代码如下:#include #include #include #include using namespace std;typedef long long ll;const ll N = 3e5+10;ll n, m, x, cnt;char a[N], c;int main(){ scanf("%I64d%I64
2015-08-14 13:35:33 623
原创 Codeforces Round #316 (Div. 2) B. Simple Game
题目链接注意n=1的时候特判下就行。代码如下:#include #include #include #include using namespace std;typedef long long ll;const int N = 1e5+10;ll n, m, cnt;int main(){ scanf("%I64d%I64d", &n, &m); if(n ==
2015-08-14 13:17:37 492
原创 Codeforces Round #316 (Div. 2) A. Elections
题目链接水题,注意初始化为-1,一开始初始化为0,坑了自己好几把。代码如下:#include#include#include#includeusing namespace std;typedef long long ll;const int N = 1e5+10;int n, m, maxn, tmp;ll a, cnt;int sum[200];int main(
2015-08-14 13:14:46 572
原创 ZOJ 1025 Wooden Sticks(贪心 基础题)
题目链接题意: 机器加工n个木条,每个木条有一个长度和重量。加工第一根木条需要1分钟的准备时间,接下来如果后一根木条的长度和质量都大于等于前一根木条,则不需要准备时间,否则需要1分钟的准备时间,求加工完所有木条最少时间。 比如有5根木条,长度和重量分别是(4,9), (5,2), (2,1), (3,5), (1,4),则需要2分钟就可加工第1分钟加工(1,4), (3,5), (
2015-08-02 17:00:12 782
原创 ZOJ 1093 Monkey and Banana
题目链接题意:给你n个规格的砖块,告诉你它的长、宽、高,每种规格的砖都有无数块,长宽小的砖块(严格小于,不能等于)可以叠在长宽大的砖块上,问你最多能叠多高。思路:告诉你一种规格的砖其实给了你三种规格的砖,因为砖是可以翻转的,长宽高可以变化的;以长为第一变量,宽为第二变量,从大到小排序,这样垫在第n块砖下面的只能从前n-1块选择,选择最大值,累加高度即可。代码如下:#includ
2015-08-01 21:24:54 687
原创 VK Cup 2015 - Finals F. Clique in the Divisibility Graph
题目链接题意:给你n个数,求一个最长子序列,要求是这个子序列中任意两个数,其中一个一定是另外一个的倍数代码如下:#include #include #include #include const int N = 1E6+10;using namespace std;int dp[N], a;int main(){ int n, maxn; while
2015-08-01 16:08:27 674
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人