- 博客(60)
- 收藏
- 关注
原创 #poj:P1955 [NOI2015] 程序自动分析
**poj:P1955 [NOI2015] 程序自动分析**#题目描述#看到题就能想到是并查集了 但是想的复杂了 还以为是一般的带权并查集 想了好久没做出来#与其判断相等和不相等交替的传递性问题 不如直接到就将相等的联系起来 因为相等有传递性 把不相等看作一次查询 如果这两个点在一个并查集里就错了#知识点并差集 离散化#代码第一次用权并查集来写 并没有真正的带上权 过了个50 想优化但就是写不出来了#include<cstdio>#include<algo
2021-07-31 20:55:40
187
原创 #poj:Fair Distribution
#poj:Fair Distribution#题目描述#大概意思要你找到一个最短的方式来使得n * k = m 成立 n只能减小 m只能增加 k为任意一整数#n减少的数加上m增加的数的和最小#看着好像只能暴力的算 但是定睛一看 范围 1e8 直接暴力能想到会超时 自己写也是各种优化都来试试撞运气还是卡时间 还要优化算法#知识点分块 (我是没看出来-别的大佬说的(⊙ˍ⊙))#代码#include<bits/stdc++.h>using namespace std;#
2021-07-23 21:32:29
184
原创 #洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯
洛谷oj:P1525 [NOIP2010 提高组] 关押罪犯#题目描述#一看很明显是贪心算法 加排序 因为 这个中间最大值的那一对肯定是不会在一起的 从大到小来看 所有点对都尽量不要在一个监狱#带权并查集 这个想不出来 只想到了并查集 来判段是不是在一个监狱 想不出怎么合并 (⊙ˍ⊙)#知识点并查集 贪心 排序 二分图(不了解)#代码第一次10分 我想的是两个都不确定的情况就两种情况都试试 再来找小的那个值#include<cstdio>#include&l
2021-07-17 21:39:30
297
1
原创 #洛谷oj:P2024 [NOI2001] 食物链
poj:P2024 [NOI2001] 食物链#题目描述#这个是带权并查集的典型题#每当一个动物第一次出现时 这个关系因为没有参照关系 所以一定是对的 就加入并查集#知识点带权并查集#代码第一次还是没有怎么弄懂这个之间的关系 修修改改 一直改关系 还是只有50 差一半#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include&.
2021-07-16 20:51:23
392
1
原创 #洛谷oj:P1196银河英雄传说
**洛谷oj:P1196银河英雄传说**#题目描述#并查集的题#注意并查集就是只能一次更新一个的位置信息 如果更新一段就没有意义了#知识点并查集#代码第1次 更新一段了 就没有意义了 超时了#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<stdio.h>using namespace std;#define
2021-06-30 20:26:17
144
原创 #洛谷oj:P3144 Closing the Farm S
**洛谷oj:P3144 Closing the Farm S**#题目描述#这个输出可以一起输出的 不是一输入一输出#想想 这个可以看成是在开启农场 你正着看要你找开启的联通块 你要关农场反着看 你从没有农场到开农场 找的也是开启的连通块 找的东西是一样的(要理解)!#知识点并查集#代码#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#i
2021-06-27 21:03:30
236
1
原创 #洛谷oj:P1197星球大战
**洛谷oj:P1197星球大战**#题目描述#要用并查集#这个是要反着用的 比起其他差不多的题有点特殊#知识点并查集#代码第一次:就按照一般的板子来写超时了 就稍微优化了点 还是超时了懂了这个再看第二个#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define Maxn 400005int
2021-06-27 20:53:43
207
1
原创 #航电oj:A Bug‘s Life
**航电oj:A Bug’s Life**#题目描述#大意是你输入的数表示的是这俩的不同 问你输入中有没有bug#看有没有bug 要看在这之前的输入数据和这个数据有没有矛盾 这种有无bug 矛盾的一般都是并查集#知识点状态并查集#代码#include<cstdio>#include<cstring>#include<stdio.h>#include<algorithm>#include<iostream>using
2021-06-24 16:53:51
203
原创 航电oj:Chess
**航电oj:Chess**#题目描述#给你数 组出一个队伍来参赛 要实力最大的配置#输入一个数就往数据组中替换 看是不是比原来好 数据全都替换后 就是最优配置#知识点线性规划 动态规划#代码#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<stdio.h>using namespace std;int ans
2021-06-21 20:43:01
209
原创 # 航电oj:Period
**航电oj:Period**#题目描述#大意为:从第二个开始会有循环,要你找出循环的最后一个数的位置 还有循环的长度如aaa 2 2 表示 aa 为循环体 2 为循环长度 3 3 表示为 aaa 为循环体 3 为循环长度#运用kmp中next函数的特点 不匹配时会回到已经匹配的过的位置的后面一位!! 这时假设前面匹配过的就是这个循环的循环体 这就对上了位置 在i的位置时 匹配失败有 i = len, len = next【len】 —》 i-len = i - next【i】循环节
2021-06-18 20:13:04
407
原创 # 航电oj:Number Sequence
**航电oj:Number Sequence**#题目描述#就是kmp算法 要你算最先匹配完成的那个位置#比一般的就是用数字来代替了字母#知识点kmp算法#代码#include<cstdio>#include<cstring>#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int text[1000005];int
2021-06-16 21:15:52
135
原创 #航电oj:Count the string
**航电oj:Count the string**#题目描述#要你用kmp算法来算一个串和它的子串的匹配次数#最少有n个 子串本身也是一次 一共有n次 加上 子串之外的匹配次数#知识点kmp next数组意义#代码#include<cstdio>#include<cstring>#include<stdio.h>#include<algorithm>#include<iostream>using namespace
2021-06-15 21:01:57
110
原创 航电oj:吃糖果
**航电oj:吃糖果**#题目描述#难点在于怎么才能不超时#想想用总结的思路来接题 不要硬着杠#知识点归纳总结#代码第1版 超时了#include<cstdio>#include<cstring>#include<stdio.h>#include<algorithm>#include<iostream>using namespace std;int n,m;int data[1000002];bool cmp
2021-06-07 16:25:15
137
原创 #航电oj:Hat‘s Fibonacci
**航电oj:Hat’s Fibonacci**#题目描述#要你求出所给数的对应值#看到note 就知道大概不能直接算了 是大数运算#知识点大数运算#代码第一版 因为没有压缩空间 导致超存 但是减少空间又会超时 或 直接错误 虽然有一定优化 但还是不够看 (已挂)#include<cstdio>#include<cstring>#include<stdio.h>#include<algorithm>#include<i
2021-06-05 16:32:15
98
原创 航电oj:The 3n + 1 problem
**航电oj:The 3n + 1 problem**#题目描述#给你一个区间 要你求在这个区间内能运转这个规则的次数#这个规则是 奇数就变为三倍加1 偶数就除2 是1了就结束#知识点英语? 语文?#代码这个题就是有坑 算法并不难第一版 没有注意到坑 但我觉得这个比第二版好 可以看看 (这个是挂的!!!)#include<cstdio>#include<cstdio>#include<cstring>#include<al
2021-06-03 20:48:56
122
原创 #航电oj:SORT AGAIN
**航电oj:SORT AGAIN**#题目描述#可以排序 也可以哈希#这个题是真的怪 我为什么就这么多报错呢??? 服了#知识点排序 哈希#代码第一版 哈希 没对 ce?? wrong ?? 没懂?#include<cstdio>#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<stdio.h>
2021-06-01 20:41:45
125
原创 # 航电oj:反素数
**航电oj:反素数**#题目描述#这个题为啥要逼逼这么多东西 又用不到#难理解不说 还有坑#知识点自信(大概)#代码#include<cstdio>#include<cstring>#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;int n,a,b;int math(){ int maxx = 0;
2021-06-01 19:45:13
89
原创 #航电oj:新生晚会
**航电oj:新生晚会**#题目描述就是排列组合#考点大概就是怎么算出来不报错#知识点数学 数据类型#代码#include<cstdio>#include<cstring>#include<stdio.h>#include<algorithm>#include<iostream>using namespace std;int n,m;double sum,temp,ans;int main()//用longlon
2021-06-01 19:27:10
75
原创 航电oj:Max Sum Plus Plus
**航电oj:Max Sum Plus Plus**#题目描述#大意是 先给你两个数 段数 数字总数 再在数字中找到段数个数字段落 每个数字段落的和要最大#每个段落的开始结束之间没有其他段落的开始 每个数值最多只能在一个段落里#知识点动态规划#代码#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<stdio.h>
2021-05-25 21:11:04
127
原创 #航电oj:ACboy needs your help again!
**航电oj:ACboy needs your help again!**#题目描述#大意为 IN 就输入数据 OUT 就输出数据 FIFO 表示要按照顺序输出输入的数据 FILO 就是逆序输出数据#别多想 就是队列和栈#知识点队列 栈#代码#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<stdio.h>#i
2021-05-24 16:56:00
116
原创 #航电oj:回文数猜想
**航电oj:回文数猜想**#题目描述#仔细看题 这个题是只有整数的 没有其他字符 所有不必要用字符数组来实现#求数的回文 就是除10 取余 在另外一面垒起来就行。#知识点回文数#代码#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<stdio.h>using namespace std;int num,tem
2021-05-24 15:39:38
128
原创 #航电oj:测试你是否和LTC水平一样高
航电oj:测试你是否和LTC水平一样高#题目描述#这个题看上去简单,3个循环来就可以写出来 但是你又真的会3个循环的写上去吗#o(n 3)太大了 我还想这有没有o(n 2)的方法 浪费了时间#可能唯一的考点就是 循环改成99?(这也是改进吗??)#知识点细心#代码#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<stdio
2021-05-23 20:03:22
104
原创 航电oj:盐水的故事
航电oj:盐水的故事#题目描述#中文题就要特别小心题目中有隐含条件#这里 就有 VUL D 都可以是double 类型的坑 用整型变量 就算注意到了不满一滴用一滴计算也不会正确#知识点细心#代码#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<stdio.h>using namespace std;double V
2021-05-23 19:48:36
170
原创 航电oj:To Be NUMBER ONE
**航电oj:To Be NUMBER ONE**#题目描述*#不输入 输出16排 数 每一排的倒数相加为1 (3 ~18)#1/n = 1/(n+1) + 1/(n+1)n#知识点数学知识#代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int data[1000];void decompose(){ for(int i=2; i&
2021-02-07 19:32:04
144
原创 航电oj:Heavy Transportation
#航电oj:Heavy Transportation#题目描述#给你地图边界 和若干条道路载重量 求遍历所有点的道路的最大载重量#最大载重量 就是这条道路的载重量的最小值#知识点djsta#代码#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int t;int INF = 0x3f3f3f3f;int mapp[1010][1010];int vi
2021-02-07 19:26:45
179
原创 航电oj:棋盘问题
***航电oj:棋盘问题**#题目描述#一般的dfs问题的思路 但要注意附加条件的特殊性#找位置的时候不必要在两重循环 改位一重循环 结果另存 递归传参为行/列序数#知识点dfs#代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n;int m;char mapp[9][9];int vis[9];//行列上都只有一个 所以一维
2021-02-07 19:20:47
211
原创 航电oj:青蛙的约会
**航电oj:青蛙的约会**#题目描述#一般的方法会超时将方程变为不定式来计算而不是循环求解#知识点不定式计算 ax+by=c;#代码#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long LL;/// 不定式 ax+by=c 的通解和特解void gcd(LL a, LL b, LL& d, LL& x
2021-02-07 19:12:59
167
原创 航电oj:汉诺塔IV
**航电oj:汉诺塔IV**#题目描述*#在原版汉诺塔的规则上加两点 不能一次移动两格(1到3 或3到1 都不行 要借助2) 特例 最大的那个盘中可以可以放在小的上面#第二点 就只是单单在最后大盘移动时有用 多余时候不要乱想 改以下原版汉诺塔的步骤 将n-1个小的移动到3----------(1->3) a[n-1]次 将大的从1到2-------(1->2) 1次 将n-1个移动到1 ---------(3->1)a[n-1]次 将大的从2移到3 ------(2-&g
2021-02-07 17:53:00
380
原创 航电oj:汉诺塔V
**航电oj:汉诺塔V**#题目描述#给你汉诺塔的层数,目标层数 问你当汉诺塔完成的时候目标成数移动了多少次#最大的一层一次 在这上一层乘二 有这个规律#知识点递归#代码#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int n,t,m;long long int math(int n,int m)///n 成数 m 目标成数 最大的那一成肯定
2021-02-07 17:36:01
125
原创 航电oj:Quicksum
**航电oj:Quicksum**#题目描述#输入一个字符串 按照规则一一将字符化为数字再相加 输出总值#空格也是一个字符 数字表示为0#知识点字符串#代码#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;char str[256];int main(){ while(gets(str))
2021-01-31 21:07:01
125
原创 航电oj:Sum
**航电oj:Sum**#题目描述#题目好难理解 现在有n个数1~n 在式子1±2±3±4 ~ ± n 中这个n最小为多少时可以得到m (题给的那个数)#数学题 不能想得太复杂了 假设全是加 看值大于m没 只有大于或等于才有可能满足条件 大于就将前面的加号部分改为减号 从加到减 数值变化了两倍 为二的倍数 找到了m - n 为二的倍数就可以满足 计算的值刚好为m#知识点数学#代码错误例子#include<cstring>#include<cstdio>#
2021-01-31 21:02:28
143
原创 航电oj:Factorial
**航电oj:Factorial**#题目描述#题目bb这么多就只问你 n 的阶乘中有多少个0#肯定不能撒一样的算出来在数 要知道1~9 中只有2的倍数和5的倍数相乘才会有0出现 2比5多 那就只要找5的倍数 就行#知识点数学#代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n;int math(int n){ int su
2021-01-31 20:46:03
83
原创 航电oj:Big Number
**航电oj:Big Number**#题目描述#给你数字n 让你输出你n!的位数 有多少位#我打表不过 自己算阶乘也不行 log10 也不行 用一个不认识的公式就可以了 数学不好匿了匿了#知识点数学#代码#include<cstdio>#include<cstring>#include<algorithm>#include<math.h>using namespace std;#define PI 3.14159265doub
2021-01-31 20:39:34
102
原创 航电oj:最短路
**航电oj:最短路**#题目描述#djsta 算法容易求得##知识点djsta floyd 算法#代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int mapp[101][101];int dis[101];int flag[101];int INF = 0x3f3f3f;int n,m;void init(){ f
2021-01-31 20:31:40
130
原创 航电oj:DFS
航电oj:DFS#题目描述#不要输入 依次输出1到n 的 每个位数的阶乘的和#n 还挺大的 就是骗你的 其实到不了那么大 因为每个位数的最大的数9 9!= 362880 就10 位数都是9 这个阶乘的和 都到不了7位数 所有目标可以缩小到7位数的样子#知识点阶乘#代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int data[10] = {1
2021-01-31 19:37:02
181
原创 航电oj:猜数字
**航电oj:猜数字**#题目描述#题目不好懂 就是要你根据给的数 这个是猜的次数 在这个次数下 最多能精确猜到的数的最大值#了解二分查找就能容易理解#知识点二分查找#代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int math(int n){ int sum =1; for(int i=1;i<=n;i++)
2021-01-31 19:25:02
131
原创 航电oj:18岁生日
**航电oj:18岁生日**#题目描述#理解题目 看出生和18岁这两年 其他年 润年366 平年 365#出生年闰年且生日在2月前 这年有366 18岁这年(出生年是闰年前一年)生日在3月或之后 有366#知识点闰年#代码#include <cstdio>#include<cstring>#include<algorithm>using namespace std;int fn(int math)//闰年为1平年为-1{ if(m
2021-01-24 20:15:35
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人