
FOJ
Tzzzzzzzzy
FZU
展开
-
FOJ 1036 1036 四塔问题
一,问题描述二,问题分析参考如下:https://blog.youkuaiyun.com/wsqgwp/article/details/9164399三,问题解答#include<iostream>using namespace std;int f[50001]; //打表void init(){ f[0] = 0; int p =...转载 2020-04-19 15:15:20 · 272 阅读 · 0 评论 -
FOJ Problem 1481 环串
一,问题描述二,问题分析暴力循环破解,我们采用一个集合记录下字符串的所有环串的形式,在通过比较输入的字符串是否存在与集合中,如果存在,ans++三,问题解答#include<iostream>#include<string>#include<vector>#include<set>using namespace ...原创 2020-04-17 15:37:38 · 348 阅读 · 0 评论 -
FOJ Problem 2210 攻占计划
一,问题描述二,问题分析 分析题目n表示城市数量,m表示城市之间道路的数量,而道路不会形成环路,且输入的a,b表示表示城市a有一条连向城市b的道路,说明是有向图,要破坏一座城市,使得断粮最多,即就是选择一个城市,而这个城市就是 道路中起点次数最多的城市,采用一个数组记录城市作为起点的次数,注意城市的下标是从1开始的,所以数组要多开辟一个空间。三,问题解答#in...原创 2020-04-15 12:23:57 · 236 阅读 · 0 评论 -
FOJ Problem 1068 An Interesting Set
一,问题描述题目翻译:二,问题分析对于集合S,满足两个条件(二者满足一个就行)1.条件1,显然1-9是满足的,而其他数字的判断可以利用取余来实现2.条件2,可以利用set集合的性质来判断,结合条件1,所有偶数都是满足集合S的3.根据题意,正整数K是小于500的,我们采用打表法,把集合S的前500个元素都记录下来三,问题解答#include<io...原创 2020-04-14 17:41:43 · 141 阅读 · 0 评论 -
FPJ Problem 2088 最长队名
一,问题描述二,问题分析1.题目简单分析就会有思路,即按照字典顺序排序,并且拼接字符串,按照字典序的话可以直接排序算法,或者采用multiset2.multiset可以保证插入的字符串按顺序排列3.考虑到输入的队员姓名会有重名的情况,所以不采用set而使用multiset三,问题解答#include<iostream>#include<stri...原创 2020-04-14 16:42:19 · 236 阅读 · 0 评论 -
FOJ Problem 2027 单词问题
一,问题描述二,问题分析1.遍历输入的整个字符串,对每个字符进行判断,判断每个字符是否在字母范文内,并用一个char型数组接收单词2.判断单词是否唯一,我们可以采用map中find()函数3.注意是多个输入,输出格式为按顺序输入单词,一个单词一行三,问题解答#include<iostream>#include<map>#include&...原创 2020-04-14 16:16:18 · 251 阅读 · 0 评论 -
FOJ Problem 1589 自动机
一,问题描述二,问题分析整个问题就是模拟的一个过程,难点在于对命令的处理1.由于要清空整个队列,采用deque.clear()函数2.命令的输入不同,采取不同的对策三,问题解答#include<iostream>#include<string>#include<deque>using namespace std;...原创 2020-04-11 21:13:17 · 127 阅读 · 0 评论 -
FOJ Problem 2121 神庙逃亡
一,问题描述二,问题分析简单来说是纯物理问题,水平方向为匀速运动,竖直方向为匀加速运动注意:从离S米直接开始起跳,加速度恒为10只需判断竖直方向的位移是否大于火墙的高度h即可三,问题解答#include<iostream>using namespace std;int main() { int n; cin >> n; for...原创 2020-04-10 14:23:14 · 198 阅读 · 0 评论 -
FOJ 1705 众数问题
一,问题描述二,问题分析 该问题最直接的方法,就是用数组记录出现的次数,每出现一次对应的下标就增加一次,但是集合中元素的值可以是负数,所以用数组记录会比较麻烦。这个时候我们考虑map数据结构,map中元素是键值对即 <键,值>,键就可以相当于集合元素值,值相当于集合元素出现的次数。记录完毕后再遍历整个map容器找出值最大的元素即可。三,问题解答...原创 2020-04-03 20:28:42 · 199 阅读 · 0 评论 -
FOJ 1075 分解素因子
一,问题描述 注意:输入一个测试用例后,第二行会立即输出这个测试用例的结果,并不是等所有测试用例都输入后,再一次性输出所有测试用例正确输入输出格式:2111198282*2*3*3*3*7*13二,问题分析 问题的求解思路如下:首先把所有1到65535范围内的所有素数找出来,并用数组保存,对于每一个测试用例,依次用素数数组...原创 2020-04-03 16:05:15 · 141 阅读 · 0 评论 -
FOJ 1055
一,题目链接http://acm.fzu.edu.cn/problem.php?pid=1055二,题目描述三,题目分析1.程序段的格式是已知的,一行为三个字符,且中间是赋值运算符,只需用一个数组记录字符是否是已知的(查表法)2.需要考虑情况如下:2.1 n = -1时,程序结束 2.2 n...原创 2020-04-01 11:47:28 · 191 阅读 · 0 评论 -
FOJ 2205
一,题目描述二,题目分析题目抽象出来的意思就是N个城市的地图中不能有任意三个城市能够相互直达,求N个城市之间联通的最大道路数该情况是不允许存在的该题思路就是二分图,把所有城市分成两个块,块内之间的城市不允许相互连接,而块间的城市则要尽可能多的连接四个城市五个城市所以N个城市的道路数递推公式:N/2 * (N-N/2)三,代码解答...原创 2020-03-31 22:35:33 · 143 阅读 · 0 评论 -
FOJ 1150
一,问题描述FOJ1150题目链接翻译如下:二,问题分析n = 10 k = 3第一次可以抽 10 根烟,剩下 10 个烟头可以组成 3 根烟加 1个烟头第二次可以抽 3 根烟,剩下 3个烟头加上上次剩余的 1个烟头,总共4个烟头可以组成1根烟加1个烟头第三次可以抽1根烟,剩下一个烟头加上上次剩余1个烟头,剩下 2个烟头无法继续...原创 2020-03-31 21:49:09 · 161 阅读 · 0 评论 -
FOJ 1477 进制转化
一,问题描述二,问题分析该问题最大的难点在于进制之间转换的方法,参考《算法笔记》三,代码解答#include<iostream>using namespace std;void digui(int i, int k){ if (i < k) { if (i >= 10) printf("%c", i + 55); //得...原创 2020-03-31 20:32:08 · 159 阅读 · 0 评论 -
FOJ 1889 龟兔赛跑
一,问题描述二,问题分析思路很简单,只需要根据题意比较龟兔的路程即可,兔子:(总时间 -睡觉时间)*速度 乌龟:总时间 * 速度三,代码解答#include<iostream>#include<cstdio>#include<vector>using namespace std;struct Game{ int a...原创 2020-03-31 17:45:27 · 121 阅读 · 0 评论 -
FOJ 2025 count
一,问题描述二,问题分析1.对于 one遍历字符串如果遇到字符 ‘o’ ,查看接下来的两位字符是不是 ‘n’和 ‘e’,注意边界条件的判断其他同理 三,代码解答#include<iostream>#include<string>using namespace std;int onefun(string str) { int r...原创 2020-03-31 17:24:04 · 152 阅读 · 0 评论 -
FOJ 2123 数字的孔数
一,问题描述二,问题分析1.提议描述的十分清楚,统计给定整数的孔数和2.最直观的思路就是对整数的每一位分析,如果是0 4 6 9则孔数加1,如果是 8则孔数加23.首先将整数的每一位存储在数组中,再对数组遍历,逐个元素分析即可三,代码解答#include<cstdio>#include<iostream>#include<al...原创 2020-03-31 16:02:44 · 235 阅读 · 0 评论 -
FOJ 1021 飞船赛
一,题目描述 题目地址:http://acm.fzu.edu.cn/problem.php?pid=1021二,题目分析1.暴力破解:根据题目给定的超车含义,由于在0秒内即可加速到最大速度,那么只要位于后面的飞船的速度大于前面的飞船速度,即可发生超车现象。由于暴力破解时间复杂度过高,提交显示超时2.由于最大速度为100,故开辟一个大小为101空间speed...原创 2020-03-25 12:15:16 · 144 阅读 · 0 评论 -
FOJ 1304 Recaman's Sequence
一,问题描述二,问题分析1.初看题目符合递归的条件,需要注意的是 a(m) 不在序列中的意思是 a(m)的值在 前m-1个序列中不存在2.输入的整数K的最大范围是500000,采用一个数组记录整个序列即可3.还需要一个标记数组用来判断得到的a(m) 在前面的序列的是否存在三,问题解答#include<iostream>#include<v...原创 2020-03-24 17:02:34 · 170 阅读 · 0 评论 -
福州大仙2018年复试上机真题1
一,问题描述二,问题分析该问题我们采用并查集的数据结构来思考1.最开始初始化,每个城镇都是孤立的节点,其父节点就是本身2.道路相通意味着 两个节点有道路相连,即属于同于同一个集合,根据输入的道路相连情况,依次对其进行 并查集的union() 操作,合并到同一个节点3.最后通过find()操作依次找到所有城镇的祖先节点,并存入集合set中,集合的大小即为城镇划分的...原创 2020-03-23 11:51:34 · 128 阅读 · 0 评论 -
FOJ 1476 矩形的个数
一,题目描述二,问题分析1.公式法:长方形的个数 = 长边上的线段和×宽边上的线段和2.排列组合法一个长方形由四个顶点,四条边所确定以一行m列为例,只有一行,所以长方形的宽已经确定为1,而长的确定就是组合问题,即在n个点中找两个点组合,注意这两个点可以重合,所以是C(m+1,2)扩展问题,一个n行m列的长方形中,宽的组合数C(n+1,2),长的组合数C(m+1,...原创 2020-03-22 16:54:40 · 1205 阅读 · 0 评论 -
FOJ 1058 粗心的物理学家
一,题目描述二,代码解答#include<iostream>#include<vector>using namespace std;int main() { int n; while (cin>>n) { double sum = 0; for (int i = n; i >0; i--) { sum += (1...原创 2020-03-20 23:22:57 · 110 阅读 · 0 评论