
思维题
lixuwei2333
这个作者很懒,什么都没留下…
展开
-
hdu6301Distinct Values(类似滑块思想)
题目链接 [题意] n 个数, m 个区间[l,r] 内 保证 不能重复, 但 相交区域外的可以重复, 问 最小字典序的 这样一个序列[思路]采用 Set 维护, Set 中 存放 1-n 表示可用的数字#include <iostream>#include <bits/stdc++.h>using namespace std;const i...原创 2018-07-25 09:21:47 · 262 阅读 · 0 评论 -
菜菜种菜 Comet OJ - Contest #8
题目链接:https://cometoj.com/contest/58/problem/D?problem_id=2758对于第i个点,记录他左右距离最近的直接到达点的编号,分别为le[i]和ri[i]。当且仅当询问区间[L,R] ,满足 L<=i&&R >=i &&L>le[i]&& R< ri[i] 时第i号节点会...原创 2019-08-10 09:47:28 · 217 阅读 · 0 评论 -
【启发式合并】【主席树】HDU - 6504 - Problem E. Split The Tree
题目链接:https://cn.vjudge.net/problem/HDU-6504做法一:启发式合并,用unorder_map维护每个子树的颜色信息。需要用到第x个颜色的总数,和第x个颜色在第i棵子树内的个数来判断删除第i棵子树后的答案变化。#include<bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i ...原创 2019-05-06 19:40:48 · 323 阅读 · 2 评论 -
Change FZU - 2277 【dfs序】【树状数组】
题目链接:https://cn.vjudge.net/problem/FZU-2277题意:1 v x k : a[v]+=x , a[v’]+=x-k (v’ is child of v) , a[v’’]+=x-2*k (v’’ is child of v’) and so on.2 v : Output a[v] mod 1000000007(10^9 + 7).错误思...原创 2019-04-12 19:41:26 · 155 阅读 · 0 评论 -
牛客- CSL 的字符串 【栈】
题目链接:https://ac.nowcoder.com/acm/contest/551/D题目大意:字符去重且保证字典序最小。首先,很明显要处理每一个字符的最后一个位置。一开始的思路:某个字符是一定要在它的结束符号之前被输出。假如没遇到结束符那么可以暂且先留一留。然后想了一下或许可以使用优先队列来模拟这个过程,每次判断一个字符是否在队列里或被输出过,若在则跳过,若不在则...原创 2019-03-31 21:40:37 · 218 阅读 · 0 评论 -
Distinctive Character 【BFS】
给n个二进制串,x与y的距离是二进制上不同的位数。求距离这n个二进制串最近距离最远的二进制串。n<=1e5,二进制串长度<=20做法:建图,共有2^20个点,对于一个点来说,最多有20条边与之相连,边为双向边且边权为1。把起始点扔进队列,然后多源bfs,求深度最深的点。#include <bits/stdc++.h>#define rep(i,...原创 2019-04-05 10:22:06 · 208 阅读 · 0 评论 -
[SCOI2008]着色方案 (状态压缩)
题目链接Description有n个木块排成一行,从左到右依次编号为1~n。你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块。所有油漆刚好足够涂满所有木块,即c1+c2+…+ck=n。相邻两个木块涂相同色显得很难看,所以你希望统计任意两个相邻木块颜色不同的着色方案。Input第一行为一个正整数k,第二行包含k个整数c1, c2, … , ck。Output输出一个整...原创 2019-02-11 16:48:47 · 410 阅读 · 0 评论 -
Codeforces Round #503 (by SIS, Div. 2)C. Elections政党选举 (枚举答案,贪心)
题目链接 题意: 告诉你有n个选民,m个党派,其中输入数据会告诉你每个人它选了哪个党派,并且他改变主意需要花多少钱。 你的任务是确保1号党派赢的前提下使用的钱最少,问最少花多少钱1<=n,m<=3000 注意到党派和选民的数量比较少,而且不好直接求最少花费。 转化为验证答案合法性,但是枚举/二分花费的话也不好验证,改为枚举获胜时的选票数。(注意,不能二分选票,因为不满足单...原创 2018-08-13 09:50:56 · 221 阅读 · 0 评论 -
Codeforces Round #101 (Div. 2)C. Queue
题目链接 题意:给定n个人以及每个人前面比他高的人数a[i]。让你还原这个队列及每个人的高度。题解:按照a排序,然后给这n个人分配身高,显然a大的人的身高尽可能低,所以身高高度从n到1进行分配。 然后让每个人进行入队,对于第i个人,考虑其入队情况。根据身高分配规则可知,队列中的每个人都比其要高。然后将i插入到a[i]的位置即可,此时满足i前面比i高的人个数为a[i],并且i入队不改变队...原创 2018-08-15 09:50:56 · 172 阅读 · 0 评论 -
Codeforces Round #501 (Div. 3)E2. Stars Drawing (Hard Edition)
题意: 给出一个n*m的图,四方向的最大长度相同为一个星星,问能否找到不大于n*m颗星星,使得图中的所有都被星星覆盖。 思路: 首先o(n^2)算出所有*能扩展的最大规格,4个方向dp求最小值 然后o(n^2) 用差分前缀和的方法进行填充 值得一提的是,这题的标程tle了,因为使用的cin/cout输入输出#include <bits/stdc++.h>#define ...原创 2018-08-11 09:13:27 · 202 阅读 · 0 评论 -
POJ - 3279 Fliptile
题目链接 题目大意: 给一个n*m的黑白棋盘,每次可以翻转一个块和其上下左右四个块,问最少多少次翻转出全白棋盘。思路:枚举第一行的翻转情况,然后检验#include <iostream>#include <cstdio>#include <ctime>#include <cstring>#include <cmath>...原创 2018-07-28 08:42:18 · 171 阅读 · 0 评论 -
Codeforces Round #307 (Div. 2)C - GukiZ hates Boxes(二分+贪心)
题目链接 题目大意: 一段长度为n的路上分布着石头,让m个同学从0开始去搬石头。每个同学每秒钟可以向右移动一步,或者移除当前位置的一块石头,问最少需要多少时间能搬完所有的石头做法一: 二分时间t,然后让一个人工作t时间(有石头就搬,没有就向右走),如果工作未完成继续派出一个人去工作t时间。#include<bits/stdc++.h>#define ll long lo...原创 2018-07-27 20:09:14 · 159 阅读 · 0 评论 -
Codeforces Round #309 (Div. 2) D. Kyoya and Permutation
题目链接 思路: 长度为n的数列,稳定的排列数为fib[i] = fib[i-1]+fib[i-2]; 然后从高位1向低位n遍历,判断每一位是否需要交换(剩余的数可以拼出k来,那么就不交换)#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 1000+100;con...原创 2018-07-31 14:52:51 · 141 阅读 · 0 评论 -
Vanya and Scales (天平砝码称重)
题目链接题意:给你一个天平和101个砝码,砝码的质量各不相同,分别为 w0, w1, w2, …, w100 ,物品质量为m,问能不能称出物品的质量。做法一: 将m展开为w进制数列 1后面只能跟0和1 w-2后面不能跟1 最后一位不能是w-2#include <bits/stdc++.h>using namespace std;int num[100],len...原创 2018-07-26 16:11:04 · 452 阅读 · 1 评论 -
CodeForces 548A. Mike and Fax(好蠢啊)
题目链接 题目大意: 给一个字符串s,问是否能从中找到“AB”“BA”两个不相交的字串思路: cf div2的A题,题意很简单,但是当时思考的时候有些乱。 一种想法是,找到AB出现的位置,找到BA出现的位置,判断重合。时间复杂度最差n^2; 另一种想法是: 想一下答案的形态,只有2种情况AB….BA和BA….AB,然后检查S中是否有这两种形态#include <bit...原创 2018-07-20 22:15:44 · 181 阅读 · 0 评论 -
Make Rounddog Happy【序列分治+DP】
DP维护从某点 往后/往前 遇到的第一对非法点对。然后分治计数,合并的时候根据最大值是 由左区间贡献还是右区间贡献 来进行分类,注意去重。可以枚举左/右区间端点,这样即能固定最大值也能固定剩余区间的长度。复杂度O(NlogN)#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (...原创 2019-08-22 08:13:30 · 349 阅读 · 0 评论