模拟
Nemaleswang
ACM退役狗一只
展开
-
Leetcode 剑指 Offer 20. 表示数值的字符串
题目链接:剑指 Offer 20. 表示数值的字符串题目大意:给你一个字符串,问他是否是合法字符题目思路:最开始以为是个大模拟,写了半天,各种特判才放过去,评论区有很多更好的分类方法,比如分为A.BeC这种情况,然后分为有符号数和无符号数的情况特判,这种特判是我见过的最好的做法了,秒杀自动机的做法。 不过标程还是采用了有限自动机的做法,所以还是把重点放在有限自动机上,最根本的状态就在下面这张图上,具体的分析可以见官方题解,有了转移状态,就可以很好的写出代码了。时间复杂度&&空间复杂原创 2020-12-01 13:46:58 · 218 阅读 · 0 评论 -
Leetcode 155. Min Stack
题目链接:Min Stack题目大意:要求你去模拟一个栈,要求实现push,pop,top功能,并且附加了一个功能getMin,要求你去每次找到每次栈中最小的值题目思路:前面的模拟栈好说,直接用数组模拟栈或者更直接的使用stack即可,主要的问题是找到最小的值,这个问题需要记录最当前的最小值以及上一次的最小值,这个东西可以类似链表处理的方式,记录前驱即可(这种简单题还写了半天。。。)时间复杂...原创 2020-04-10 20:25:42 · 154 阅读 · 0 评论 -
Leetcode 1348. Tweet Counts Per Frequency
题目链接:Minimum Number of Steps to Make Two Strings Anagram题目大意:给定两个相同长度得字符串s和t,对于s中得字符,可以变成任何一个字符,问最少变换多少个字符可以从s到t题目思路:一个简单题,首先可以想到,从一个字符到另一个字符,如果s比t多一个a,少一个b,那么只需要将s中得a变成b即可,只需要一次而已,所以我们先考虑这种情况,也就是s多...原创 2020-02-16 16:00:51 · 508 阅读 · 0 评论 -
hihocoder 1255 Mysterious Antiques in Sackler Museum
题目链接:G题题目大意:给你四个小矩形,问能不能选取其中三个小矩形组成一个大矩形题目思路:三个小矩形能构成大矩形的构造方法只有两种,三个排成一排或者一个左边,两个右边但是一个在右边上,一个右边下,方向不用管,那么我们枚举矩形,然后分别枚举长和宽列出这两种情况就好了#include <map>#include <set>#include <cmath>#include <queue>#inc原创 2017-10-19 21:13:23 · 343 阅读 · 0 评论 -
hihocoder 1258 Osu! Master
题目链接:J题题目大意:给你一些操作,C和B后面跟数字,S不跟,问有多少组操作,S算大圈,直接算一组,B和C算同样的一组操作,但是序号必须得递增,否则就是另一组的题目思路:直接按题意模拟就好了#include <map>#include <set>#include <cmath>#include <queue>#include <stack>#include <vector>#inclu原创 2017-10-19 21:30:03 · 657 阅读 · 0 评论 -
hdoj 5583 Kingdom of Black and White
题目链接:Kingdom of Black and White题目大意:给你一些由0和1组成的字符串,现在你可以变换至多一个字符变成另一个,求最大贡献,贡献的计算方式是连续相同的字符的和的平方之和题目思路:我们可以把一块当成一个整体来看,我们可以知道的是,在长度不为1的块中,变中间的数字一定不会导致贡献的增加,只有头尾是可以的,然后对于长度为1的块需要特判,我们在判断块的时候枚举每一块的头尾就好了,原创 2017-10-15 17:10:44 · 297 阅读 · 0 评论 -
hihocoder 1631 Cats and Fish
题目链接:Cats and Fish题目大意:有m条鱼,n只猫,x个时间,然后每只猫有一个吃鱼的速度,所有的猫同时开始吃鱼,他吃完一条鱼之后马上去下一条鱼,如果鱼不够,吃鱼速度快的猫先吃鱼,问x时间最后剩下多少条完整的鱼和不完整的鱼题目思路:我们直接模拟过去就好了,对猫按速度排个序,然后每分钟都从前往后扫一遍,看这个猫能不能吃鱼,能就给他分配一条没吃的鱼,然后对没个猫做个标记,代表他正在吃还是没吃了原创 2017-11-28 22:28:27 · 360 阅读 · 0 评论 -
hihocoder 1632 Secret Poems
题目链接:Secret Poems题目大意:给你一个某种路径形成的字符串,还原后用另一种方法表示题目思路:按题意模拟就好了,还原的时候分一下上下三角,然后上下三件移动的方向是成循环的,下半角需要分一下奇偶以确定初始方向#include <map>#include <set>#include <cmath>#include <vector>#include <cstdio>#include原创 2017-11-28 22:34:57 · 342 阅读 · 0 评论 -
蓝桥杯 矩阵翻硬币
题目链接:矩阵翻硬币题目大意:有一个n*m的全部是正面的硬币矩阵,对每个硬币,对所有合法的i,j实施i*x行j*y列的翻转,xy是硬币的位置,问所有的硬币翻转一次之后,现在场上有多少个硬币是反面题目思路:我们可以打一下表,模拟一下翻转的情况,找有多少硬币翻转次数是奇数次就可以了,我们可以知道答案是一个sqrt(n)*sqrt(m),sqrt向下取整,由于是大数,我们用JAVA大数类就可以了原创 2018-01-06 19:54:02 · 502 阅读 · 0 评论 -
hihocoder 1249 Xiongnu's Land
题目链接:A题题目大意:给你一个长宽都为k的矩阵,现在给了你一些小矩阵的绿化地带,现在要求你用平行于y轴的线分割这个矩阵为左右两部分,要求: 一、是左边的绿化地带必须大于等于右边的地带,并且两边的绿化地带必须最小 二:在满足第一条条件的情况下要求左边分割的矩阵比右边的矩阵要尽可能大题目思路:我们先找到左边的绿化地带比右边大的分割线,然后这个分割线向右边靠,如果绿化面积继续增大,就不行,输出上一条原创 2017-10-19 21:06:57 · 354 阅读 · 0 评论 -
hdoj 6034(2017 Multi-University Training Contest - Team 1)Balala Power!
题目链接:Balala Power!题目大意:(真是拗口的题意)有n个字符串,每个字符串都只包含小写字母,每一个小写字符都可以有且仅有一个独立的权值,所以这个权值的范围是0-25,所以每一个字符串就可以变成一个26进制字符串,然后这个26进制是从右到左计数,也就是说26n26^n<-26026^0,因此每个字符串都有一个总的权值,现在要求得这样的一个最大权值题目思路:(标程想法吧,tls的标程确实是原创 2017-08-02 17:35:30 · 344 阅读 · 0 评论 -
hdoj 6023 Automatic Judge
题目链接:Automatic Judge题目大意:给你t组数据,每组一个n一个m,代表有n道题目,m个操作,每个操作有三个关键字,一个整数代表当前交的题目,一个字符串代表交这道题的时间,一个字符串代表得到的结果,问你总共通过多少题目,总罚时是多少题目思路:直接模拟就很好,直接判断一下第一个字符是不是A就好了,不用去管那么多状态,然后AC之后就不管了。具体看代码#includ原创 2017-05-07 22:15:32 · 643 阅读 · 0 评论 -
zoj 3960 What Kind of Friends Are You?
题目链接:What Kind of Friends Are You?题目大意:给你一个T,代表T组数据,然后每组数据一个n一个q,代表n个朋友q个问题,然后是一个姓名的集合,代表当前所知道姓名的集合,然后是q次查询,每次查询都有一个姓名集合,之后是一个n*q的矩阵,代表第i次问询的姓名在第j个集合里出现没有,出现为一,否则为零,问是否存在且只存在一个姓名满足这个条件,如果存在则输出那个原创 2017-04-27 17:00:33 · 426 阅读 · 0 评论 -
zoj 3961 Let's Chat
题目链接:Let’s Chat题目大意:给你一个n,m,a,b,分别代表线段总长度,需要求的连续的长度,第一个集合所有的区间,第二个集合所有的集合,问你长度为m并且两个集合重合的不同线段有多少种题目思路:这个题目是比较简单的吧,学弟暴力过了,没看他代码太长了,看网上代码发现一个非常好的解法,写两个指针分别从头开始扫,一遍一遍交换区间,感觉是一个很简短的写法,左端点是当前A区间和B区间左端点的最大值,原创 2017-04-27 22:22:42 · 546 阅读 · 0 评论 -
Codeforces Round #423 (Div. 2) A. Restaurant Tables
题目链接:Restaurant Tables题目大意:有一些吃饭的小组,要么一个人,要么两个人,而饭店里面也只有两种桌子,一种只能一个人坐,另一种是两个人坐,对于一个人的情况,他需要先坐一个人座位的空座,如果没有就坐两个人的空座,如果也没有就坐两个人的座位但是其中有一个座位有人坐,如果还没有这个人就会被拒绝,两个人只能坐两个人的桌子,否则就会被拒绝题目思路:直接按照题意走就没有问题了,a代表一个人的原创 2017-07-12 22:04:06 · 281 阅读 · 0 评论 -
Codeforces Round #423 (Div. 2) B. Black Square
题目链接:Black Square题目大意:给你一张有B和W的面积为n*m的图,问你能不能通过将W染成B的方式使得含有B的组成一个正方形,如果不行输出-1题目思路:找到必须组成的边长,然后看面积大不大于n*m,大于就-1,否则就用长方形面积减去已经有的B个数,就是答案#include <bits/stdc++.h>using namespace std;const int maxn = 105;i原创 2017-07-12 22:09:25 · 313 阅读 · 0 评论 -
Educational Codeforces Round 25 B. Five-In-a-Row
题目链接:Five-In-a-Row题目大意:现在有X和O两种代表黑方和白方的两种棋子,.代表空白格,可以下,当前是黑方的下棋,问黑方这一次能不能马上赢掉,五子棋规则题目思路:按照五子棋下棋方式去模拟就好了#include <bits/stdc++.h>using namespace std;char mp[15][15];bool check(int x,int y){ int cnt =原创 2017-07-18 14:10:55 · 297 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2) B. Petya and Exam
题目链接:Petya and Exam题目大意:首先有两个字符串,一个字符串代表好字符串,这里面的每个字符都是好的(只包含小写字母),然后有一个原串,这个原串中可能包含有?和* 。?可以替换任意一个好字符,*可以替换空或者一个全由坏字符组成的串,接下来有t组数据,每组一个字符串,问这个字符串能不能通过上面的规则实现原串到模式串的替换题目思路:直接模拟就好,如果没有* 直接暴力替换,有的话从前往后替换原创 2017-07-31 16:00:32 · 271 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) A. The Useless Toy
题目链接:The Useless Toy题目大意:给你两个方向,然后给你一个n,问你是逆时针旋转n次从一个方向到第二个方向,还是顺时针旋转n次从一个方向到第二个方向,如果都可以或者都不可以,输出undefined题目思路:直接模拟就好#include <cstdio>#include <cmath>#include <cstring>#include <cstdlib>#include <i原创 2017-07-31 16:03:34 · 255 阅读 · 0 评论 -
swjtuoj 2381 Matrix
题目链接:Matrix题目大意:给你一个矩阵,刚开始里面的数全部是零,然后有两种操作,操作1表示将某行全部变为某个数,操作2表示将某列全部变为某个数,输出最后的矩阵题目思路:直接保存一下最后的状态就好了,列和行不同,判断一下最后保存的是行还是列就好了#include <bits/stdc++.h>#define eps 1e-6using namespace std;typedef long原创 2017-05-15 22:26:19 · 520 阅读 · 3 评论