AtCoder - 4496 G - k-DMC】的更多相关文章

AtCoder - 4496 G - k-DMC 题目 长度为n的字符串,q次查询,问"DMC"(不要求连续)在字符串中出现的次数,其中D和M的距离不超过k. 错误思路 通过遍历字符串中的每一个"M",再移动窗口,处理左右"D"."C"的数量.(TLE) 题解 滑动窗口,维护当前窗口中"D"."M"."DM"的数量,遇"C"则ans加上"…
自从资料片开始,一直在思考稳定可靠的过神思路,现在有眉目了,试验了几把感觉不错,先分享如下: 1)只开2个分城,特殊情况除外.Re: 经过多次打的经验,开2个分城比开3个分城更容易选址,政策更快,快乐问题容易解决,安全性好. 而贡献的科研不输于3个分城,这是因为3分开最慢,而且会拖累快乐和国立,实际科研算起来在前中期并不比2分占优,而到了后期,傀儡科研发力,3分贡献的科研就不足道了. 2)荣誉右线优先,特殊情况可先走左线拿大军(如战争迫在眉睫):Re: 先冲到驻军+笑脸和文化,然后再走左线,这样…
C - Chocolate Bar 题面 There is a bar of chocolate with a height of H blocks and a width of W blocks. Snuke is dividing this bar into exactly three pieces. He can only cut the bar along borders of blocks, and the shape of each piece must be a rectangle…
A - Two Integers 如果\(X\)是\(Y\)的倍数的话不存在 可以输出\(X \cdot (\frac{Y}{gcd(X,Y)} - 1)\) 代码 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define pdi pair<db,int> #define mp make_pair #define pb push_back #…
C - ID Time limit : 2sec / Memory limit : 1024MB Score: 300 points Problem Statement In Republic of Atcoder, there are N prefectures, and a total of M cities that belong to those prefectures. City i is established in year Yi and belongs to Prefecture…
题目链接:http://arc074.contest.atcoder.jp/tasks/arc074_c 题意:一共有3种颜色,红色,绿色,蓝色.给出m个要求l,r,x表示在区间[l,r]内要有x种不同的颜色. 问满足所有要求的染色方式一共有几种. 题解:一般问一共有几种组合方式要么推数学公式,要么就是dp. 不妨设dp[r][g][b]表示是k=max(r,g,b)前k个染色后r色结尾的位置为r,g色结尾的位置为g,b色结尾的位置为b. 显然转移为dp[k+1][g][b]+=dp[r][g]…
AGC024(5.20) 总结:猜结论,“可行即最优” B: 给定一个n的排列,每次可以将一个数移到开头或结尾,求变成1,2,...,n所需的最小步数. 找到一个最长的i,i+1,...,j满足在排列中的位置递增,这些数可以保留,答案就是n-(j-i+1). C: 给定一个数列A,初始数列X全为0,每次可以让X[i+1]=X[i]+1,求最少多少次能变成A. 首先特判掉A[1]>0和A[i+1]>A[i]+1的情况,然后如果A[i+1]=A[i]+1,那么只需要ans++,否则ans+=A[i…
题目描述 给定一个整数数组a[0,...,n-1],求数组中第k小数 输入描述 首先输入数组长度n和k,其中1<=n<=5000, 1<=k<=n 然后输出n个整形元素,每个数的范围[1, 5000] 输出描述 该数组中第k小数 样例输入 4 2 1 2 3 4 样例输出 2 其实可以用 堆 来做,保证根节点为最小值,然后逐步剔除.不过当然也可以直接排序.权当熟悉一下STL: #include <vector> #include <algorithm> #i…
题意就是要求第K短的路的长度(S->T). 对于K短路,朴素想法是bfs,使用优先队列从源点s进行bfs,当第K次遍历到T的时候,就是K短路的长度. 但是这种方法效率太低,会扩展出很多状态,所以考虑用启发式搜索A*算法. 估价函数 = 当前值 + 当前位置到终点的距离,即F(p) = G(p) + H(p). G(p): 当前从S到p所走的路径距离 H(p): 当前点p到终点T的最短路径距离   ---可以先将整个图边方向取反然后以T为源点求个最短路,用SPFA提速 F(p): 从S按照当前路径…
题意:给一个有向无环图,求出来最小路径覆盖,注意一个点可能会被多条路径重复 分析:因为有可能多条路径走一个点,可又能会造成匹配的不完全,所以先进行一次闭包传递(floyd),然后再用二分匹配的方法求出来最大匹配即可. *********************************************************************. #include<stdio.h> #include<; ; ; k<=N; k++)     ; i<=N; i++)…