这里放一些我参加过的考试题和比赛题中没想出来的题(所以可能不仅仅是毒瘤的思维题,还有可能有简单的思维题以及窜进来的数学数据结构之类的题)。 可能会有一少部分的平时的练习题。 CF351E Jeff and Permutation 给出数组 \(a\) ,你可以改变每个数的正负,求逆序对数最少是多少。 ...
分类:
其他好文 时间:
2020-11-11 16:36:12
阅读次数:
8
首先题目要求最后字典序最小的,而且只包含小写字母,因此显而易见像a,b这样的字符越在前面越好。 考虑贪心。 枚举这个字符串的每一个位置,然后再枚举小写字母a ~ z,能换则换,就是尽量将字典序最小的换到最前面,或者退而求其次。 code: 1 #include <bits/stdc++.h> 2 # ...
分类:
其他好文 时间:
2020-11-11 15:54:21
阅读次数:
8
#1:在数组中找两个数,使其和为target 链接:https://leetcode-cn.com/problems/two-sum/ 暴力就是n^2,可以用map来做,这里介绍一下map.count(tmp)函数,是搜索key的值,map里存在值为tmp的key就返回1,否则是0 #122:给定一 ...
分类:
其他好文 时间:
2020-11-08 17:59:16
阅读次数:
25
#include<iostream> #include<memory.h> #include<cmath> #include<algorithm> using namespace std; typedef struct { int x, y; }node; node d[6000]; int r, ...
分类:
其他好文 时间:
2020-11-08 17:11:46
阅读次数:
15
给定一棵树,树上每个结点刚开始有一个人,现在每个人需要走到一个不同于原来的结点,并且必须保证每个结点上仍然有且仅有一个人,在树上走一条边的代价为 $1$,求最小代价。 ...
分类:
其他好文 时间:
2020-11-06 02:09:44
阅读次数:
23
5556. 可以到达的最远建筑 刚开始写得时候感觉像贪心,但没分析好不敢写,自己写了个记忆化搜索,后来看讲解把贪心法给补上 记忆化搜索 const int MAXN = 1e5+50; class Solution { public: int dp[MAXN]; int dfs(int now, v ...
分类:
其他好文 时间:
2020-11-01 22:29:28
阅读次数:
84
拖了一年, 今天上午终于把这道题做出来了。 基本思路 题目要求字典序最小, 而字典序是有着天然的贪心性质的, 可以比较自然地想到要应用贪心算法, 进一步地, 要思考 “某个数字最终停留在某个点上” 会对全局的删边顺序产生哪些限制。 比如有这样一条路径: \(s--^a--o--^b--o--^c-- ...
分类:
其他好文 时间:
2020-11-01 10:37:55
阅读次数:
19
题意:给你四组长度为$n$序列,从每个序列中选一个数出来,使得四个数字之和等于$0$,问由多少种组成情况(仅于元素的所在位置有关). 题解:$n$最大可以取4000,直接暴力肯定是不行的,我们可以先对后两个数组$c$和$d$,枚举他们每个元素的和,用一个新数组$CD$记录,然后再去枚举$a$和$b$ ...
分类:
其他好文 时间:
2020-10-31 01:32:05
阅读次数:
17
这种线性最值问题一般不是贪心就是动归 应该是道贪心题,因为每一列的值与其他列没有什么关系(这是判断贪心问题的根本大法),对于每一列找出使其Hamming距离最小的值即可,由于此题只要值相同就是0,值不同就是1,没有远近之分,所以每一个值都是原来出现次数最多的值。 一定注意出现多解的时候如何选择!!! ...
分类:
其他好文 时间:
2020-10-22 23:11:08
阅读次数:
33
贪心算法两句话 第一句话: 能往左倒就往左倒。 如同数学中“我们不妨设”一样,相信很好理解。这里只对第二句话稍作解释: 不能往左倒的尽量往右倒 这样为什么是对的呢? 我们可以分类讨论一下: 假设当前已经处理到第$i$个,且它不能往左倒,$h_i$表示树高,$x_i$表示位置。 若$x_{i + 1} ...
分类:
其他好文 时间:
2020-10-22 22:14:46
阅读次数:
14