随笔- 1046
文章- 115
评论- 19
阅读-
36万
随笔分类 - 模拟
Base32 编码与解码
摘要:写一个程序实现base32的编码与解码。base32编码的原理:对于任意一个二进制字节数组,将连续的5个bit进行编码,5个bit可以表示32个不同的数,分别映射到a-z(26个字母)和 0-5(6个数字),比如00000映射到a,00001映射到b,00010映射到c,...,11110映射到4,
阅读全文
HDU 6777 Covid (简单模拟)
摘要:Covid Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 177 Accepted Submission(s): 70 Problem Desc
阅读全文
基础练习 回形取数 (循环 + Java 输入输出外挂)
摘要:基础练习 回形取数 时间限制:1.0s 内存限制:512.0MB 时间限制:1.0s 内存限制:512.0MB 问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。 输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和
阅读全文
基础练习 完美的代价 (贪心)
摘要:问题描述 回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。 交换的定义是:交换两个相邻的字符 例如mamad 第一次交换 ad : mamda 第二次交换 md : mad
阅读全文
UVa 11722 Joining with Friend (几何概率 + 分类讨论)
摘要:题意:某两个人 A,B 要在一个地点见面,然后 A 到地点的时间区间是 [t1, t2],B 到地点的时间区间是 [s1, s2],他们出现的在这两个区间的每个时刻概率是相同的,并且他们约定一个到了地点,等待另一个人 w 分钟,问你他们可能见面的概率是多少。 析:就是一个高中的一个几何概率的典型例题
阅读全文
HDU 6127 Hard challenge (极角扫描)
摘要:题意:给定 n 个点,和权值,他们两两相连,每条边的权值就是他们两个点权值的乘积,任意两点之间的直线不经过原点,让你从原点划一条直线,使得经过的直线的权值和最大。 析:直接进行极角扫描,从水平,然后旋转180度,就可以计算出一个最大值,因为题目说了任意直线不是经过原点的,所以就简单了很多,每次碰到的
阅读全文
PAT 1017 Queueing at Bank (25) (坑题)
摘要:Suppose a bank has K windows open for service. There is a yellow line in front of the windows which devides the waiting area into two parts. All the c
阅读全文
UVaLive 3695 Distant Galaxy (扫描线)
摘要:题意:给平面上的 n 个点,找出一个矩形,使得边界上包含尽量多的点。 析:如果暴力那么就是枚举上下边界,左右边界,还得统计个数,时间复杂度太高,所以我们考虑用扫描线来做,枚举上下边界, 然后用其他方法来确定左右边界。我们定义left[i] 表示竖线左边位于上下边界上的点数(不包含在竖线上的点),on
阅读全文
POJ 3658 Artificial Lake (单调栈)
摘要:题意: 析:利用单调栈,维护一个单调递增的栈,首先在最低的平台开始,每次向两边进行扩展,寻找两边最低的,然后不断更新宽度。 代码如下:
阅读全文
UVa 12333 Revenge of Fibonacci (字典树+大数)
摘要:题意:给定一个长度小于40的序列,问你那是Fib数列的哪一项的前缀。 析:首先用大数把Fib数列的前100000-1项算出来,注意,一定不能是100000,要不然会WA的,然后每个数取前40位,不足40位的全取,然后插入到字典树上, 并用一个数组标记是哪一项,最后查询的时候,如果查不到就是无解,否则
阅读全文
CodeForces 753C Interactive Bulls and Cows (Hard)
摘要:题意:。。。 析:随机判断就即可,每次把不正确的删除,经过几次后就基本剩不下了。 代码如下:
阅读全文
HDU 4891 The Great Pan (题意题+模拟)
摘要:题意:给定一个文章,问你有多少种读法,计算方法有两种,如果在$中,如果有多个空格就算n+1,如果是一个就算2的次方,如果在{}中, 那么就是把每个空格数乘起来。 析:直接模拟,每次计算一行,注意上一行最后有空格,下面第一个也是,要全部算上。 代码如下:
阅读全文
CodeForces 730A Toda 2 (模拟)
摘要:题意:给定一个序列,现在你每次至多给5个人的权值减小1,最少2个人,最小是0,使得剩下的所有权值都相等且尽量大。 析:用multiset来模拟,每次取权值最大的三个或者两个,直到最后相等。我开始没有这个STL,自己写的,虽然过了,但是好麻烦,后来看的题解是用这个。 代码如下:
阅读全文
Gym 100531J Joy of Flight (几何)
摘要:题意:你从开始坐标到末尾坐标,要经过 k 秒,然后给你每秒的风向,和飞机的最大速度,问能不能从开始到末尾。 析:首先这个风向是不确定的,所以我们先排除风向的影响,然后算出,静风是的最小速度,如果这都大于最大速度,肯定是不可能,如果可能, 再计算出每秒走的单位长度,然后再模拟整个过程。 代码如下:
阅读全文
数据结构 最小子树问题 (模拟)
摘要:Description 已知在以二叉链表存储的二叉树t中,p和q为二叉树中任意输入的两个不同的结点,试编写一个算法,求包含结点p和q的最小子树。 Input 输入样例有多组,每组第一行两个数n,q,分别表示树的结点个数和询问个数。结点编号从1到n。接下来的n–1行按层序输入n-1条边,每一行输入两个
阅读全文
数据结构 马的遍历问题 (暴力回溯)
摘要:Description 在n*n棋盘上,对任一位置上放置的一个马,均能选择一个合适的路线,使得该棋子能按象棋的规则不重复地走过棋盘上的每一位置。 Input 输入第一行为测试数据组数。从第二行开始每行3个整数n(3<n<10)、x、y,代表棋盘的大小,和初始坐标。 Output 输出字典序最小的可行
阅读全文
数据结构 最优字符串编码 (哈夫曼编码)
摘要:Description 基于任给一串大写英文字母序列(例如MNOPPPOPMMPOPOPPOPNP),编程实现求解一套二进制编码,使得上述正文的编码最短。 Input 有多组输入数据,每组一串字符串,每个字符串长度不超过1000且只包含大写英文字母。 Output 每组数据输出两行,第一行输出组数,
阅读全文
CodeForces 382C Arithmetic Progression (排序+分类讨论)
摘要:题意:给出一个长度为n的序列,表示有n张卡片,上面的数字,现在还有一张卡片,上面没有数字,问说可以写几种数字在这张卡片上面, 使得n+1张卡片上的数字可以排列成一个等差数列,有无限多种时输出-1. 析:首先排序是肯定的,然后再分成几种,如果只有一个数,那么就一定是-1,如果是两个数时,在前面和后面一
阅读全文
CodeForces 632C Grandma Laura and Apples (模拟)
摘要:题意:有n个人买苹果,当苹果剩余偶数时买走一半,当苹果剩余奇数时,先买走一半,再用半价买走一个苹果,最终苹果恰好卖完.农民收入为多少. 析:反向模拟。 代码如下:
阅读全文
CodeForces 731B Coupons and Discounts (水题模拟)
摘要:题意:有n个队参加CCPC,然后有两种优惠方式,一种是一天买再次,一种是买两天,现在让你判断能不能找到一种方式,使得优惠不剩余。 析:直接模拟,如果本次是奇数,那么就得用第二种,作一个标记,再去计算下一个。 代码如下:
阅读全文