思想-模拟
tianxiang971016
ztx97
blog.ztx97.win(希望有生之年搭起来
展开
-
[SCU4445] Right turn [2015 Sichuan Province Contest Final J]
题意一直青蛙直线走直到碰到障碍物,此时他只能右转继续直线走。问右转多少次可不撞到障碍物,无限循环输出-1.题解只有1000个障碍物,用map离散化,用set记录某个x或y上的障碍,然后模拟,以障碍物为单位记录状态,出现重复状态输出-1,否则输出答案。代码/****************************************\* Author : ztx* Title : J - R原创 2016-07-26 20:06:59 · 400 阅读 · 0 评论 -
[Educational Codeforces Round 17 C (762C)] Two strings
题意给定两个串a、b,要求在b中删掉一个子串,使得b串成为a串的子序列题解从b串左边开始匹配a串左边,记录下来匹配到的位置,知道匹配结束 再从b串右边开始匹配a串右边,记录下来匹配到的位置。 。。。。然而这需要开两个数组。。。否则就像我一样gg了代码/// by ztx// blog.csdn.net/hzoi_ztx#define maxl 100010LLchar s1[maxl], s原创 2017-02-04 20:13:55 · 540 阅读 · 0 评论 -
[Codeforces Round #394 DIV2C (CF761C)] Dasha and Password
题意给定一个密码锁,密码锁有nn环,每一环mm个字符,你可以旋转每一环向左或向右,询问最少旋转几次能让现在的密码至少有一个数字,一个小写字母和一个给定符号(*或&或#) n,m≤50n,m\le 50题解对于每个环都找出来转到数字,字母,符号所需次数,n3n^3循环就完了,一道大水题。复杂度O(n3m)O(n^3m) 但是这题有更优算法。 我们对得到数字的次数取出最小的三个,字母和符号也是,这原创 2017-02-03 18:21:48 · 344 阅读 · 0 评论 -
[Codeforces Round #310 DIV1D (CF555D)] Case of a Top Secret
题意nn个钉子在墙上成一排排开,给出坐标,每次询问在某个钉子下面挂长度为ll的绳子开始逆时针旋转,最后会一直绕着哪个钉子旋转。题解首先模拟绳子先会碰到哪颗钉子,然后转到上面,这一步非常重要,因为这之后就能保证绳子不会绕到更远的地方去。再然后就是不断地二分,模拟。代码/// by ztx#include <cstdio>#define Rep(i,l,r) for(i=(l);i<=(r);i++)原创 2017-01-24 14:02:39 · 341 阅读 · 0 评论 -
[Codeforces Round #310 DIV1C (CF555C)] Case of Chocolate
题意给定一个n×nn\times n网格,网格上i+j≤n+1(1≤i,j≤n)i+j\le n+1 (1\le i,j \le n)的地方有巧克力,每次从对角线上某处开始吃,向ii减少的方向或jj减小的方向水平或竖直地吃,直到遇见没有巧克力的网格或走出边界。询问每次迟到的巧克力数。题解在不断地吃的过程中,会发现形成了一个个五边形或其退化,如下C * * * * * ** *原创 2017-01-24 14:00:50 · 411 阅读 · 0 评论 -
[Codeforces Round #310 DIV1A (CF555A)] Case of Matryoshkas
题意现有俄罗斯套娃娃,大小11到nn共nn个,只能大的套在小的上面。已有mm堆娃娃,拿起娃娃花一秒,放回娃娃花一秒,最少需要多少秒题解nn个娃娃,mm堆,11上面连续数字长度为ll ans=2n−m−2l+1ans=2n-m-2l+1代码/// by ztx#include <cstdio>int main() { int n, m, l = 1, k, a, ans; scanf原创 2017-01-24 13:57:15 · 356 阅读 · 0 评论