
-----思维贪心模拟-----
文章平均质量分 61
stormjing7
这个作者很懒,什么都没留下…
展开
-
Leetcode 3. 无重复字符的最长子串(双指针)
Leetcode 3. 无重复字符的最长子串题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。分析思路找符合特定条件的子串,首先暴力就是枚举。为了方便枚举可以将其分类为以 s[i] 结尾的字符串集合,这样就变为找所有集合中最大值。进一步,对于每一个结尾为 s[i] 的字符串,要找到最左边的 j ,那么 s[j -> i]即为当前集合的目标字串,i - j + 1 即为当前集合的答案。如何找 j,可以从 i 往前扫,直到 s[j-1 -> i] 中有重复元素。原创 2021-01-13 12:19:27 · 388 阅读 · 0 评论 -
【PAT 甲级】1011 World Cup Betting (20分)(模拟)
1011 World Cup Betting (20分)题目有三场比赛,每场比赛都有三种结果 W-win,T-tie,L-lose,每种结果有一定的赔率,分别输出每场比赛赔率最大的结果,并输出按照题中公式输出最大利润。分析甲级题目不难,都是些模拟题,就是英语看的太捉急了【看不懂。。】#include <bits/stdc++.h>using namespace std;#...原创 2020-02-17 23:17:34 · 305 阅读 · 0 评论 -
【PAT 甲级】1009 Product of Polynomials (25分)(模拟)
1009 Product of Polynomials (25分)题目多项式相乘,输入有两行,分别代表两个多项式的指数 exponent,和系数 coefficient。分析按题目模拟,两个循环。注意系数不为零的部分。#include <bits/stdc++.h>using namespace std;#define db(x) cout<<x<<...原创 2020-01-31 15:01:38 · 235 阅读 · 0 评论 -
【PAT 甲级】1008 Elevator (20分)(模拟)
1008 Elevator (20分)题目电梯开始在 0 层,给出一个序列,代表电梯要到达的顺序,上一层花费 6,下一层花费 4,每层停 5,计算总时间。分析直接模拟即可,#include <bits/stdc++.h>using namespace std;#define db(x) cout<<x<<endltypedef long lon...原创 2020-01-30 17:52:02 · 244 阅读 · 0 评论 -
【PAT 甲级】1006 Sign In and Sign Out (25分) (模拟)
1006 Sign In and Sign Out (25分)题目给出每个人来和走的时间(时:分:秒),输出最早来和最晚走的人的名字。分析直接根据题意模拟即可。写两个比较函数分别以来和走的时间排个序。#include <bits/stdc++.h>using namespace std;#define db(x) cout<<x<<endlty...原创 2020-01-29 20:29:37 · 246 阅读 · 0 评论 -
【PAT 甲级】1005 Spell It Right (20分)(水)
1005 Spell It Right (20分)题目给一个 100 位以内的数,计算所有数字之和,并将结果的每一位用英文表示。分析直接模拟即可,注意特判 0。#include <bits/stdc++.h>using namespace std;#define db(x) cout<<x<<endltypedef long long ll;...原创 2020-01-28 20:36:50 · 285 阅读 · 0 评论 -
51nod 1880 单词究错(模拟)
51nod 1880 单词究错题目:给你 n 个字符串当词典, 还有 m 个字符串当作查询,每次查询输出字典中与当前询问字符串差一个字符不一样的字符串(增加,减少,修改)。分析:模拟水题,直接暴力枚举即可。只不过做这个题时 oj 一直报错,最后才发现有个返回值为 int 的函数没有写返回语句导致 wa。记录一下。#include <bits/stdc++.h>using n...原创 2019-11-07 21:55:35 · 258 阅读 · 0 评论 -
51nod 1091 线段的重叠 (贪心)
51nod 1091 线段的重叠题目给出 nnn 条线段,问任意两条线段最大重叠区间长度。n<5e4n < 5e4n<5e4分析贪心,先按起点升序,终点降序排序,之后扫一遍所有区间。由于按起点升序,所以后面的区间起点一定小于前面的,因此对于当前区间,维护出现过的最远右端点 pospospos,考虑吧 pospospos 与当前区间的相对位置跟新答案即可。#include...原创 2019-11-01 18:45:56 · 215 阅读 · 0 评论 -
Comet OJ - Contest #13 C2 佛御石之钵 -不碎的意志 -(并查集 + 技巧)
Comet OJ - Contest #13 C2题意给出一个 n 行 m 列的 01 矩阵。有 q 次操作,每次操作选取一个子矩阵,将子矩阵变为全 1,每次操作后输出当前连通块个数,(上下左右算联通)。n, m < 1e4; q < 3e4.分析首先,==只有发生 0->1 的格子,才会导致连通块数目变化。==也就是说,对于每次操作只关注子矩阵里原本是 0 的格子,...原创 2019-10-28 17:01:23 · 272 阅读 · 2 评论 -
牛客练习赛53 C. 富豪凯匹配串 (bitset 优化 + 位运算)
C. 富豪凯匹配串题目分析代码#include <bits/stdc++.h>using namespace std;#define INF 0x3f3f3f3f#define ll long long#define fuck(x) cout<<x<<endlconst int N = 1e3 + 10;const ll mod = 1e9 ...原创 2019-10-12 20:16:00 · 180 阅读 · 0 评论 -
ACM-ICPC Shenyang Oniste 2018 C. Insertion Sort(打表找规律)
ACM-ICPC Shenyang Oniste 2018 C. Insertion Sort题目问你 n 的全排列中,满足下面条件的排列有多少种。前 k 个排序后,最长上升子序列长度至少为 n - 1。分析正解好像是推式子。不过我想不到,,,打了个表,发现 n 一定,k 增大时的序列,做差后是个等差数列。直接把上面找出来的表模拟下出来了。打表#include <bit...原创 2019-10-04 19:54:31 · 458 阅读 · 0 评论 -
ACM-ICPC Nanjing Onsite 2018 G. Pyramid(找规律,推式子)
2018 南京 icpc G. Pyramid题目下面分别是 n = 1, 2, 3 时的图案,给出 n 问你图案中有多少等边三角形,(三角形的三个点在顶点上)分析画了一下午三角形,,,以为是推公式,就手算前 6 项,结果答案越算越多,,,最后退出来前六项,盲猜公式。ans[i] = n * (n+1) * (n+2) * (n+3) / 24看别人题解是打表找的,下面是打表程...原创 2019-10-02 19:11:16 · 505 阅读 · 0 评论 -
(HDU 5573) 2015 上海 icpc B. Binary Tree(二进制找规律)
HDU5573 Binary Tree题目有一颗满二叉树,编号1 ~ n,现在你要从根节点往下走,初始手里的值 V 为 0,每路过一个节点,可以选择 V 加上或者减去节点的编号值。问你走 k 层,值 V 能否达到 n。(题目保证可以达到)最后输出路径,怎么走的。1 <= N <= 1e9N <= 2k2^k2k <= 2602^{60}260;分析可以想到,...原创 2019-10-01 20:29:05 · 236 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维 + 二分)
ACM-ICPC 2018 徐州赛区网络预赛 G. Trace题目在第一象限,按顺序给出(0, 0)到(x,y)的若干矩形,前面的矩形会被后面的矩形覆盖。保证不存在两个矩形完全覆盖。求最终能看到的矩形周长和。分析这种前面被后面覆盖的题,一般从后往前做。先考虑后面的矩形。分析一般情况,在如图所示中的情况下,因为题目保证不存在完全覆盖。所以前面再有矩形只能在“阶梯”中间放置。我们只考...原创 2019-08-17 16:53:24 · 305 阅读 · 0 评论 -
HDU 6446 Tree and Permutation (树上任意两点距离之和,DFS,思维)
HDU 6446 Tree and Permutation题目给一颗 n 个节点的带权树树,定义一个排列的距离为按排列顺序最短路径和。求 n 的全排列的距离和。例如: n = 4,其中一个排列为 4 1 2 3。那么这个排列距离为 4 -> 1 -> 2 -> 3。x ->y 指的是 x 到 y 的最短路径。分析对于全排列,分析任意两点距离对排列的贡献。假如 ...原创 2019-08-21 22:31:34 · 483 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 F. Features Track(模拟 || dp)
ACM-ICPC 2018 徐州赛区网络预赛 F. Features Track题目有 n 天,每天有一定量的点对,求点对连续出现最长的天数。分析两种方法,用 pairpairpair 存点对,直接枚举每一天的每一个点对能往后连续多少天,连续的后面要标记一下,下次枚举后面的天,不枚举标记过的点对。或者将点对用 mapmapmap 映射成数字,然后动态规划。dp[i][j]dp[i][...原创 2019-08-15 21:54:48 · 243 阅读 · 0 评论 -
JXUST-OJ 2389 拼接三角形(二分+模拟)
题目:给你n个可重复的数让你判断最多能组成几个三角形分析:分情况等边,等腰,三边不等,用 a+b>ca+b>ca+b>c公式来二分查找边界的c。注:遇到题目累加累乘一定要用long long#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define d(x) cout << (x)...原创 2019-04-03 09:23:43 · 340 阅读 · 5 评论 -
PTA天梯赛-练习集 L1-009 N个数求和
模拟通分#include <bits/stdc++.h>using namespace std;#define d(x) cout << (x) << endltypedef long long ll;const int N = 1e2 + 10;const int INF = 0x3f3f3f3f;struct node{ ll x...原创 2019-03-27 21:04:50 · 546 阅读 · 0 评论 -
51 Nod 2485 小b重排字符串
题目小b有一个字符串S,全部为小写字母,现在她希望重排列S,使得S中相邻字符不同。请你判断小b是否可能成功。样例解释:将"aab"重排为"aba"即可。分析找到出现次数最大的次数k,设字符串长度为n。如果n为偶数数,那么k最大为 n/2。如果n为奇数,那么k 最大 为 n/2+1。超过的话就不合格#include <bits/stdc++.h>#pragma GCC...原创 2019-05-15 21:57:08 · 510 阅读 · 0 评论 -
51nod 1001数组中等于k的数对
题目给n个不重复的数,问有多少数对和等于k分析两种方法对于每一个都二分找两头逼近找数对#include <bits/stdc++.h>#pragma GCC diagnostic error "-std=c++11"#define d(x) cout << (x) << endl#define INF 0x3f3f3f3f#define ...原创 2019-05-12 08:40:56 · 138 阅读 · 0 评论 -
2486 小b和矩阵(dfs水题)
2486 小b和矩阵题目顺时针螺旋输出矩阵分析水题,定义好顺时针方向顺序,每次dfs从上次的方向开始走。#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define d(x) cout << (x) << endl#define lson l, m, rt<<1#define rson ...原创 2019-05-28 10:30:21 · 224 阅读 · 0 评论 -
2517 最少01翻转次数(水题,前后缀)
51nod-2517 最少01翻转次数题目分析最终要变成k左边全0,右边全1。现在要找到k,即k左边1数量,右边0数量,最小。预处理下1前缀和,0后缀和。#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define d(x) cout << (x) << endl#define lson l, m...原创 2019-05-28 11:19:21 · 3111 阅读 · 0 评论 -
POJ - 2828 Buy Tickets(线段树单点更新+思维)
POJ - 2828 Buy Tickets题目假设有 n 个人要排队,刚开始没有人,现在每次给你 n 个人的两个属性 p,v,代表这个人插在了第 p 个人的后面,这个人的权值是v。最后输出排队序列。分析题目意思很好懂,但是很容易超时,刚开始我看到有很多插入操作,想用单链表模拟,但是找到插到第几个人前面也只能遍历,复杂度依然是 n2n^2n2。换一种思路,既然前面给你的人的位置都有可能被...原创 2019-06-10 21:48:38 · 211 阅读 · 0 评论 -
HDU - 3183 A Magic Lamp (RMQ + 贪心)
HDU - 3183 A Magic Lamp题目给一个最多 1000 位的整数,去掉 n 个数位,使剩下的数字尽可能小。分析去掉 n 个数位之后剩下的数位是固定的,之后对于高位贪心的尽可能取最小值即可。可以用RMQ预先处理最小值的下标。不过如果值相同,优先级左边的要比右边的高。剩下的数位有可能比较大,按字符串输出即可。#include <bits/stdc++.h>#de...原创 2019-07-09 17:05:34 · 197 阅读 · 0 评论 -
计蒜客信息学7月普及组模拟赛 - C 收获(逆向DP)
计蒜客信息学7月普及组模拟赛 - C 收获题目有 n 个地点,每个点有可能是果树或者亭子。初始有一个兴奋度 w,经过果树可以选择“收获” 一次,收获值为当前兴奋度 w∗a[i]w * a[i]w∗a[i],但是兴奋度会下降 k%k\%k%;经过亭子可以选择放弃 w∗a[i]w*a[i]w∗a[i] 的收获值,但是兴奋度会上升 c%c\%c%。问从 1 走到 n,能获得最大收获值?分析代码...原创 2019-07-13 17:59:44 · 585 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall(暴力,单调栈)
ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall题目给一个 n * m 的矩阵,和 k 个矩阵上的污点,问没有在污点上的子矩阵有多少。分析首先想如果没有污点,怎么算所有矩阵。枚举子矩阵右下角,n * m种情况。在确定子矩阵右下角为 (i, j)时,考虑长宽,因为本题 m 范围 100,所以枚举宽,1~m,每种宽对应 i 种高。代码:f...原创 2019-08-09 21:01:33 · 334 阅读 · 0 评论 -
2019 年百度之星·程序设计大赛 - 初赛二1002 度度熊与排列
1002 度度熊与排列题目分析一共给出了 n 对,随便拿一对,用 dfs 按字典序选择每一个位置,选完后用剩下的 n-1对 检验 check一下,不行就回溯上个位置。#include <bits/stdc++.h>using namespace std;#define ll long long #define INF 0x3f3f3f3f#define mk(x, y...原创 2019-08-19 16:26:10 · 436 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛 I. Lattice's basics in digital electronics(模拟,水题)
ACM-ICPC 2018 沈阳赛区网络预赛 I. Lattice’s basics in digital electronics题目给一个十六进制的数。先算出对应的二进制序列,再做奇偶校验(每9位一组,看最后一位与前 8 位 1 的数量奇偶关系来进行取舍)。最后根据题目给出的编码方式进行解码。分析题目太长了。。。。。读完发现是个大水题。完全按照题目里描述的步骤直接模拟即可。。注意题目...原创 2019-08-19 18:05:36 · 189 阅读 · 0 评论 -
HDU 6438 Buy and Resell(思维,贪心,最小堆)
HDU 6438 Buy and Resell题目给 n 个城市物品价格,每个地方的物品价格不一样。低买高卖就可以赚差价。从1 ~ n,每经过一个城市可以选择以当前城市价格买进一个商品,也可以以当前城市价格卖掉手中的一个商品。还可以选择什么都不干直接走。问最后能赚的最大利润是多少。分析贪心,不过思路很巧妙。ans 代表最后利润,cnt 代表操作数,这里标记买进操作,最后输出 2 * c...原创 2019-08-20 21:16:14 · 196 阅读 · 0 评论 -
jxustOJ 2388 最短区间(贪心,思维)
https://oj.ismdeep.com/problem?id=2388原创 2019-04-02 20:22:07 · 367 阅读 · 0 评论