
很套路的题
文章平均质量分 78
做不完的ACM
加油,努力
展开
-
区间DP(POJ1651)
Description 有一个长度为n的序列,现取出其中除了最左和最右的元素(顺序任意),取出一个元素的代价为它本身乘相邻元素的乘积,现在想要以最小的代价取出这些元素。Input 第一行输入一个n,代表元素的数量(n <= 100)第二行输入n个数 (a[i] <= 100);Output 输出最小代价Sample Input 1 610 1...原创 2018-07-21 08:54:31 · 247 阅读 · 0 评论 -
Wannafly挑战赛14 B(字典树的lazy标记)
链接:https://www.nowcoder.com/acm/contest/81/B来源:牛客网题目描述在一个 Minecraft 村庄中,村长有这一本小写字母构成的名册(字符串的表), 每个名字旁边都记录着这位村民的声望值,而且有的村民还和别人同名。 随着时间的推移,因为没有村民死亡,这个名册变得十分大。 现在需要您来帮忙维护这个名册,支持下列 4 种操作: 1. 插入新人名 si,...原创 2018-04-24 11:00:04 · 141 阅读 · 0 评论 -
Wannafly挑战赛14 C(tarjan缩点后拓扑)
链接:https://www.nowcoder.com/acm/contest/81/C来源:牛客网题目描述给出一个 0 ≤ N ≤ 105 点数、0 ≤ M ≤ 105 边数的有向图, 输出一个尽可能小的点集,使得从这些点出发能够到达任意一点,如果有多个这样的集合,输出这些集合升序排序后字典序最小的。输入描述:第一行为两个整数 1 ≤ n, m ≤ 105,接下来 M 行,每行两个整数 1 ≤...原创 2018-04-24 10:45:47 · 151 阅读 · 0 评论 -
中南大学第十二届大学生程序设计竞赛 D树上异或性质
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2082DescriptionThe environment of Beijing is insufferable as you know.You have to wear a mask when you go outside because of the smog. Xiaoming ...原创 2018-04-24 10:14:33 · 242 阅读 · 0 评论 -
第十四届华中科技大学程序设计竞赛 B数学
链接:https://www.nowcoder.com/acm/contest/106/B来源:牛客网It’s universally acknowledged that there’re innumerable trees in the campus of HUST. One day Xiao Ming is walking on a straight road and sees m...原创 2018-04-30 20:09:17 · 199 阅读 · 0 评论 -
第十四届华中科技大学程序设计竞赛C 可删除元素的并查集
链接:https://www.nowcoder.com/acm/contest/106/C来源:牛客网题目描述 It’s universally acknowledged that there’re innumerable trees in the campus of HUST. Thus a professional tree manager is needed....原创 2018-04-30 19:56:04 · 231 阅读 · 0 评论 -
第十六届金马五校 二进制找规律F:1 + 2 = 3 ?
链接:https://www.nowcoder.com/acm/contest/91/F来源:牛客网小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指算了一下有很多正整数x满足这个等式,比如1和2,现在问题来了,他想知道从小到大第N个满足这个等式的正整数,请你用程序帮他计算一下。 (表示按位异或运算) 输入描述:第一行是一个正整数,表示查询次数。接着有T行,每行有一个正整数,表示小Y...原创 2018-04-16 21:16:03 · 244 阅读 · 0 评论 -
牛客练习赛4B思维
链接:https://www.nowcoder.com/acm/contest/16/B来源:牛客网题目描述FST作为小朋友,经常会遇到和距离有关的问题,但是他已经厌倦了曼哈顿距离和欧几里德距离,所以FST就定义了一种FST距离。 这种距离并不用于空间或平面中,而运用于FST发明的一些神奇的算法中(唔... ...)。 设i号元素的特征值为Ai,则i和j的FST距离是 |i2 - j2|+|Ai2...原创 2018-03-27 12:43:32 · 430 阅读 · 0 评论 -
牛客练习赛A二维偏序
链接:https://www.nowcoder.com/acm/contest/16/A来源:牛客网题目描述FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷。 但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。 拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。 可是,有一些笔记本是被另外一些“完虐...原创 2018-03-27 12:13:21 · 347 阅读 · 0 评论 -
牛客练习赛4反素数
链接:https://www.nowcoder.com/acm/contest/82/A来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld题目描述 t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数 输入描述:第一行一个正整数t之后t行,每行一个正整数n输出描述:输出t...原创 2018-04-01 18:27:01 · 201 阅读 · 0 评论 -
2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛 J:物理
#include <bits/stdc++.h>using namespace std;int main(){ int T; scanf("%d", &T); while(T --) { int s, v1, v2; scanf("%d %d %d", &s, &v1, &v2); ...原创 2018-05-05 20:56:23 · 253 阅读 · 0 评论 -
HDU5919主席树
题意CCPC的I题。给出一个序列,问区间[l, r]中所有不同元素出现的第一个位置(取最左)组成的序列中的中位数。 第i个询问区间依赖于第i-1个询问的答案,所以是强制在线的。题解比较经典的主席树维护区间种类问题的变形。相同元素只取最左侧位置,所以对序列a,从a[n]到a[1]建立主席树,插入新元素到主席树中时取消相同元素的贡献,只保留最左侧元素。 查询[l, r]的时候,查询第l个版本的主席树就...原创 2018-05-25 01:00:57 · 161 阅读 · 0 评论 -
归并求逆序对POJ2299
#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;typedef long long ll;const int maxn = 505050;int a[maxn], n, b[maxn];ll res = 0;void merge_union(...原创 2018-05-08 14:50:12 · 147 阅读 · 0 评论 -
牛客多校第一场A
链接:https://www.nowcoder.com/acm/contest/139/A来源:牛客网 题目描述Count the number of n x m matrices A satisfying the following condition modulo (10^9+7).* Ai, j ∈ {0, 1, 2} for all 1 ≤ i ≤ n, 1 ≤ j ≤ m....原创 2018-07-20 09:00:52 · 248 阅读 · 0 评论 -
Codeforces 1004D
转载自:https://blog.youkuaiyun.com/FSAHFGSADHSAKNDAS/article/details/80951796题目链接:http://codeforces.com/contest/1004/problem/D 为了方便叙述我在(0,0)(0,0)建立直角坐标系,那么xx轴和yy轴都是对称轴,(0,0)(0,0)是对称中心,相同的数字呈现闭合的菱形分布。...转载 2018-07-18 15:48:41 · 366 阅读 · 0 评论 -
Codeforces981E
题目链接:http://codeforces.com/contest/981/problem/E题意:给出若干个操作,问任意选出这些操作的子集,最大值的在1-n的有多少种可能。题解:那就是我其实只需要最后去看一下能否凑成即可 不需要考虑是否是最大 因为在选择的时候我们可以任选子集 可以尝试 好一个数通过好多次加法之后他不是最大的 那么一定构造不出。直接在线段树是跑bitset即可,复杂度(N*Lo...原创 2018-06-01 00:59:58 · 413 阅读 · 0 评论 -
Codeforces987F
题目链接:http://codeforces.com/contest/987/problem/FF. AND Graphtime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a set of size m with int...原创 2018-05-31 23:45:46 · 264 阅读 · 0 评论 -
Codeforces985D
思路:二分,.有以下两种构造,分别计算两种情况取个最小。#include <bits/stdc++.h>using namespace std;using ll = long long ;ll n, H;bool check1(ll t){ ll cnt = 0; if(t <= H) cnt = t * (t + 1) / 2; else c...原创 2018-05-24 22:34:22 · 230 阅读 · 0 评论 -
HDU4417
题目大意为给定一个长度为n的区间,同时给出m个询问,每次询问在区间[l,r]中有多少个数小于或等于k。同样考虑用主席树来维护,每次只需要找到序列b中第一个等于k的数,那么要求的数必定在b[1]~b[upper_bound(k)]这个范围内,接下来就像线段树统计区间个数那样,若完全包含则直接加上e[rr].sum-e[ll].sum,否则就分两边递归统计。而建树什么的就直接套模板即可。还要注意一点,...原创 2018-05-24 01:09:43 · 622 阅读 · 0 评论 -
湖北省赛持久化字典树
题解:主席树维护,利用前缀和思想做差贪心。题目链接:https://www.nowcoder.com/acm/contest/104#question#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 7;struct node{ int nxt[2], v;}t[maxn * ...原创 2018-05-27 02:08:14 · 149 阅读 · 0 评论 -
HDU6191持久化字典树+DFS序
#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 7;int val[maxn];vector<int>g[maxn];int in[maxn], out[maxn];int rt[maxn], tot, time_tag;struct node{ int lc,...原创 2018-05-27 02:06:30 · 212 阅读 · 0 评论 -
hrbust2371权值线段树+并查集
题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2371讲解视频:https://www.bilibili.com/video/av16552942?from=search&seid=6401426487448027126题解:权值线段树+并查集很水,众人皆知。#in...原创 2018-05-21 21:04:57 · 273 阅读 · 1 评论 -
HDU6229(离散化,结论)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6229题意:给出N*N的图(N<=10000),下标从0开始,地图上有K个障碍点(K<=1000),机器人每次同等概率向上下左右走一格,或者呆在原地不动,问走了无限次后,机器人在地图上x+y>=n-1的区域的概率。题解:将原图赋值,4个顶点赋值3,4条边上的点但非顶点赋值4,中间赋值5...原创 2018-03-22 11:03:40 · 565 阅读 · 0 评论 -
Codeforces895E
题目链接:http://codeforces.com/contest/895/problem/E题意:给出一段区间有两种操作。1. 任选L1-R1的一个数,L2-R2的一个数,保证两端区间无交集,将这2个数交换。2.给出L,R,问L,R区间和的数学期望。题解: 先考虑左部分区间,假设其总和为sum1, 长度为len1, 右部分区间总和为sum2,长度为len2。那么对于左区间随机一个数x,进行操...原创 2018-03-22 10:05:00 · 126 阅读 · 0 评论 -
HOJ2662
题意:给出N,M列棋盘,N*M题解:考虑dp[i][j][t] 为到第i行放了j个棋子,且当前状态为t的方法数,则转移为dp[i][j][t] = sum(dp[i-1][j-num(mark[t])][tt])#include #include #include using namespace __gnu_pbds;using namespace std;#d原创 2018-01-29 22:16:29 · 272 阅读 · 0 评论 -
POJ3254 状压DP
转载:http://blog.youkuaiyun.com/accry/article/details/6607703初学状压就找个比较简单的dp,应该是最好想的状态压缩了。状态压缩dp也就是如果正常开数组,必然会导致内存过大,所有需要另外找一种办法来代替这个问题,那么就用二进制来替代,这应该就是对于状态压缩最通俗的解释了。关于一些二进制的操作比如1 如何判断数字x第i位是否为1 1转载 2018-01-29 22:08:45 · 154 阅读 · 0 评论 -
HDU5876
补图最短路:#include using namespace std;#define SZ(X) ((int)X.size())#define pb push_back#define RALL(X) X.rbegin(),X.rend()#define ALL(X) X.begin(),X.end()#define lson l,mid,rt#defin原创 2018-02-03 16:27:23 · 223 阅读 · 0 评论 -
CF920E 补图的联通块数
题目链接:http://codeforces.com/contest/920/problem/E题解:首先2个集合s1,s2,一个用来存当前点,一个用来临时保存。把删除的边存图,设当前访问的点为S点,集合s1里有点,如果S的出边的点(即u,v之间要删边)在s1里,就需要删除,临时存在s2里,然后访问集合s1,这时集合s1剩下的点一定与S在一个块里面,这次的联通快++,然后入队列,当然之前删除的原创 2018-02-03 15:45:24 · 547 阅读 · 0 评论 -
带限制的单点线段树
题目链接:http://codeforces.com/contest/920/problem/F题解:因为更新必须是单点更新,每个数变化的次数是一定的,当他变化成2时(需要特殊考虑1),则没必要继续更新,有限制,所以更新不是每次都要到单点。#include using namespace std;#define SZ(X) ((int)X.size())#define pb pus原创 2018-02-03 15:37:45 · 141 阅读 · 0 评论 -
HDU 5925
#include #include #include using namespace __gnu_pbds;using namespace std;#define SZ(X) ((int)X.size())#define mp make_pair#define pb push_back#define RALL(X) X.rbegin(),X.rend()#d原创 2018-01-26 23:44:57 · 314 阅读 · 0 评论 -
BZOJ2120
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2120#include using namespace std;const int N = 10007;int n, c[N], sum[N*100], ans[N], belong[N], BLOCK, res = 0; //ans答案数组,totq总询问,totch总修改,r原创 2018-01-13 16:36:07 · 222 阅读 · 0 评论 -
BZOJ2038
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2038题意:有N个袜子,每个袜子有不同的颜色,给出M个询问,每次询问给出L,R,从L~R区间选择2个袜子,问2个袜子相同的概率,输出格式见题目。题解:轻松推下转化为求L,R里,设有K个不同的数,每个数出现的次数为a[i]。答案为 sigma(1~k)a[i]^2 - (r-l+1)/原创 2018-01-12 15:19:46 · 283 阅读 · 0 评论 -
Codeforces886D - Restoration of string
题目链接: http://codeforces.com/contest/886/problem/D题意: 给n个串,找到一个字典序最小的串,使这n个串都为他的子串,并且最终串每个子串都为平凡子串,平凡子串定义:出现次数最少的子串。题解:很显然,最终的串一定不会有2个相同的字母,比如aba。1:每个字母的前驱和后继在一个串中会被唯一确定,比如abc,那个b的前驱一定是原创 2017-11-15 22:42:09 · 361 阅读 · 0 评论 -
Codeforces922C
题意:输入n和k,判断n mod 1~k每个数的余数是不是都不相同 思路:稍微用一下数学归纳法的思想,假设每个余数都不相同,因为nmod1=0 ,所以nmod2=1 (因为任何数对2取模只能取0或1,而0已经被占用了),同理 nmod3=2 ,..., nmodk=k−1 。是不是很神奇?k 可以取到1018 ,而要同时满足这么多条件的数,应该是不存在的或者超级大吧。大概是呈现指数的递增。#in...原创 2018-02-11 22:10:35 · 294 阅读 · 0 评论 -
Codeforces922D贪心
题目:给一些由“s”和“h”组成的字符串,把这些字符串拼接起来,贡献是所有“h”前面“s”的个数的和。 思考过程:一开始不知道怎么下手,但是可以分析出来一些性质每个串内部的贡献是可以单独计算的(虽然没什么意义)前后两个串是第一个的“s”与第二个的“h”相关(好像也没什么用)“s”和“h”的数量是固定的(看起来好像没用,证明却少不了)这个字符串好像具有传递性?咳咳,根据qbxt长者的至理名言——“大...原创 2018-02-11 22:11:55 · 433 阅读 · 0 评论 -
2018年全国多校算法寒假训练营练习比赛(第四场)E
链接:https://www.nowcoder.com/acm/contest/76/E来源:牛客网 在战争时期,A国派出了许多间谍到其他国家去收集情报。因为间谍需要隐秘自己的身份,所以他们之间只是单向联系。所以,某个间谍只能单向联系到一部分的间谍。同时,间谍也不知道跟他联系的是谁。 HA是间谍们的老大,但他也只能联系到部分的间谍。HA现在有一项命令有告诉所有的间谍。HA想要知道他至少要告诉多少...原创 2018-02-12 01:29:15 · 250 阅读 · 0 评论 -
CF768D,概率DP
问题:http://codeforces.com/problemset/problem/768/D 题意:琼恩打败白色的步行者需要k中能量水晶,但是这k种水晶并不是按照一定顺序出现的,而是随机出现,并且每种水晶出现的概率相同,琼恩想知道让每种水晶都至少有一件的概率大于P/2000至少需要多少天,共有q次查询题解:因为每种水晶出现是按照相同的概率的,很容易想到需要DP一下,而且是概率DP。DP[i]...原创 2018-03-21 19:51:52 · 247 阅读 · 0 评论 -
POJ1144(求割点数目)
题目链接:https://vjudge.net/problem/POJ-1144题意:给出N个点,然后下面若干行,某一行第一个数位u,之后若干个数为v,表示u,v有一条双向边。注意下输入。题解:裸的Tarjan算法求割点数目。#include <stdio.h>#include <vector>#include <algorithm>#include &l...原创 2018-03-21 18:32:54 · 280 阅读 · 0 评论 -
POJ2117 割点
题目链接:https://vjudge.net/problem/POJ-2117题意:求去除一点后,形成的连通分支数的最大值。(使最多的网络不能跟原路线相连)顶点u是割项当且仅满足 (1) 或 (2)时:(1) 若u是树根,且u的孩子数 son>1 。因为没有u的后向边,以这些孩子为根的子树之间互不相连通,所以去掉u后将得到son个分支。(2)若u不是树根,且存在树边 ( u , v )...原创 2018-03-21 17:54:28 · 418 阅读 · 0 评论 -
Codeforces 910B
题目链接:http://codeforces.com/contest/910/problem/B题意:有长度为n的木板,有2扇一样的门,每个门有需要用2个长度为a的板子和一个长度为b的板子,并且对一个板子不能由剩余木板拼凑而来。题解:可以dp,可以枚举排列、/*#include <bits/stdc++.h>using namespace std;int main(){ ...原创 2018-03-13 11:55:37 · 326 阅读 · 0 评论