- 博客(14)
- 收藏
- 关注
原创 【SG函数】Gym - 101908 - B. Marbles
题目链接 <http://codeforces.com/gym/101908/problem/B>题意:有一个100*100的棋盘,棋盘上有若干个棋子。两个人进行博弈,每次可以选择一个棋子进行移动,每次可以向左,或者向上,或者左上三个方向移动任意的距离。如果把任意一个棋子移到(0,0)点则获胜。给出n个棋子的坐标,问先手能不能获胜。题解:这题跟普通的Nim不一样。Nim...
2018-10-31 14:17:17 819
原创 【状压DP】GYM - 101908 - F. Music Festival
题目链接<http://codeforces.com/gym/101908/problem/F>题意:有N个舞台,每个舞台会表演一些节目,每个节目都会有一定的价值。选择一些节目进行观看,要求每个舞台都要至少看了一个节目且两个节目的时间段不能相交,问价值最大是多少。1≤N≤10,节目数量≤1000,1≤时间≤86400题解:舞台数量为10,很明显要用到状压dp。然后可...
2018-10-31 12:41:48 267
原创 【LCA分类讨论】Gym - 101908 - L. Subway Lines
题目链接<http://codeforces.com/gym/101908/problem/L>题意:给出一个树,有Q次询问,每次询问两条简单路径存在重合节点的个数。题解:主要就是一个大的分类讨论。分三个大讨论,两条简单路径的LCA深度相同和不同。三种情况里面讨论答案为0,和答案大于1的情况。剩下的就是情况就是答案为1了,个人认为答案为1比较麻烦所以直接扔在...
2018-10-28 17:52:42 345
原创 【区间DP】2017 ACM-ICPC北京赛区 - J - Pangu and Stones
题目链接<http://hihocoder.com/contest/icpcbeijing2017/problem/10>题意:石子归并,每次能归并[l,r]堆石子,每一次的归并代价是所有要合并的石子数之和,问最小的代价是多少。题解:开一个数组dp[i][j][k]表示i~j的石子合并为k堆的代价,然后把k>=2与k==1分开进行转移,还是比较巧妙的:dp[i...
2018-10-24 20:58:17 286
原创 【LIS+最大流】LOJ - #6005. 最长递增子序列
题目链接<https://loj.ac/problem/6005>题意:给定正整数序列x1∼xn ,以下递增子序列均为非严格递增。计算其最长递增子序列的长度s。 计算从给定的序列中最多可取出多少个长度为s 的递增子序列。 如果允许在取出的序列中多次使用x1和xn,则从给定序列中最多可取出多少个长度为s的递增子序列。题解:第一问直接秒掉,写成upperboun...
2018-10-18 20:18:20 220
原创 Codeforces - 1053 - B. Vasya and Good Sequences
题目链接<http://codeforces.com/contest/1053/problem/B>题意:定义一个操作:把数字中的两位进行交换。给出一个序列,问存在多少个子区间,对区间内的数字进行无限次操作后使得区间内数字的异或和为0。计算符合条件的区间数。题解:如果一个区间内1的个数和为奇数那一定不可取。对于偶数的情况,如果1的个数最大的数小于等于其余数字之和,就...
2018-10-18 13:09:00 130
原创 Codeforces - 1053 - A. Vasya and Triangle
题目链接<http://codeforces.com/contest/1053/problem/A>题意:问能否选取三个点,(x1,y1) (x2,y2), (x3,y3),且0≤x1,x2,x3≤n, 0≤y1,y2,y3≤m。使得三个点组成的三角形面积为n*m/k。如果可以,输出任意三个点即可。题解:首先可以发现,如果2*n*m%k不等于零那就肯定不可以。至于...
2018-10-18 10:51:13 145
原创 Codeforces - 1063B - Labyrinth
题目链接<http://codeforces.com/problemset/problem/1063/B>题意:给出一张地图,限制向左走与向右走的步数,问能到达的格子的数目。题解:直接存四个状态明显会炸,但可以发现,向左走的数量与向右走的数量差是固定的,也就是你每向左多走一格,就要向右走一个走回来。所以直接维护向左走数量的最小值,跑一边最短路,最后对每一个点进行判断即可...
2018-10-15 16:46:52 320
原创 【树形DP+DFS】Gym 100962J - Jimi Hendrix
题目链接<https://cn.vjudge.net/problem/360051/origin>题意:给出一个树,树上边的权值是字母。询问一个字符串,问能否在路上找到一条简单路径使它的子序列包含该字符串。输出任意的简单路径的两个端点即可。题解:如果一个节点,它的一个子树能够从左到右匹配到第ll个字符,另外一个子树能从右往左匹配到第rr个字符,而且ll+1>=rr...
2018-10-13 20:24:59 204
原创 【后缀数组+二分】POJ - 1743 - Musical Theme
题目链接<http://poj.org/problem?id=1743>题意:给出一串数字,数字范围是1~88。对于一串数字它有自己内部的变化,要求这种变化在另一串数字中也出现,且两串数字没有重合。要求数字串长度不小于5,问数字串长度最长是多少。如1,2,3,4,5,6,7,8,9 ,10,答案是5。可以找到两串不重合的数字:1,2,3,4,5和6,7,8,9,10...
2018-10-10 20:23:42 169
原创 Gym - 101889J - Jumping Frog
题目链接<http://codeforces.com/gym/229829/attachments>题意:给出一个循环字符串,R代表可以走,P代表不可以走。问有多少个步长,使得从某一点出发能回到原点。题解:因为是回到原点,所以可以只考虑每个因子。如果一个因子确定是可以的,那么它的倍数也就都可以了。#include<bits/stdc++.h>usin...
2018-10-10 13:21:56 382
原创 【倍增LCA求次小生成树】Gym - 101889I - Imperial roads
题目链接<http://codeforces.com/gym/101889/attachments>题意:给出若干条无向边,有q次询问,每次询问确定一条边必须添加的最小生成树。题解:与次小生成树的思路一样,先求一遍最小生成树,然后添加边,就构成一个环,把环内最大边删去即可。利用倍增LCA的思想,处理简单路上的最大边。#include<bits/stdc+...
2018-10-10 12:30:43 263
原创 【马拉车】Gym 101864J - Non Super Boring Substring
题目链接<http://codeforces.com/gym/101864/attachments>题意:给出一个字符串,求出不包含回文长度大于等于k的子串的个数。题解:我是先计算不符合条件的数目,然后用总的减去。先直接一遍马拉车,求出所有的回文半径。对于每一个回文长度大于等于k的中心,它会有一个范围(l,r)。从左往右考虑每一个范围,它的右端点取值范围是>...
2018-10-06 19:53:52 305
原创 【二分图/网络流】Gym - 101873F - Plug It In
题目链接<http://codeforces.com/gym/229936/problem/F>题意:有m个插座,n个电器,每个插座最多可连接一个电器。另外有一个插头,可以使得一个插座连接三个电器,问最大匹配数是多少。题解:二分图:二分图做法相对简洁一些,也会更快,保存原先的最大匹配,枚举每个插座是否还存在增广路。每次就是要对原图的反复复制。#include<...
2018-10-05 18:41:16 385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人