- 博客(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 942
原创 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 856
原创 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 #include using 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 673
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人