算法帝国
文章平均质量分 53
#眼镜&
我从未想过输,除非我不想赢。
展开
-
郑州轻工业的oj
【代码】郑州轻工业的oj。原创 2023-11-01 10:26:04 · 421 阅读 · 0 评论 -
算法训练 Bit Compressor
试题 算法训练 Bit Compressor资源限制时间限制:1.0s 内存限制:256.0MB问题描述 数据压缩的目的是为了减少存储和交换数据时出现的冗余。这增加了有效数据的比重并提高了传输速率。有一种压缩二进制串的方法是这样的: 将连续的n个1替换为n的二进制表示(注:替换发生当且仅当这种替换减少了二进制串的总长度) (译者注:连续的n个1的左右必须是0或者是串的开头、结尾) 比如:11111111001001111111111111110011会被压缩成10000010011原创 2021-11-28 22:49:39 · 125 阅读 · 0 评论 -
算法训练 Sticks
试题 算法训练 Sticks资源限制时间限制:1.0s 内存限制:999.4MB 棍棒时限: 1000MS 内存限制: 10000K提交总数: 113547 接受: 26078问题描述 乔治拿了相同长度的木棍,随机切开,直到所有零件的长度最大为50个单位。现在,他想将木棍恢复到原始状态,但是他忘记了原来拥有多少木棍以及它们原本有多长时间。请帮助他,并设计一个程序,计算出那些棍子的最小可能的原始长度。所有以单位表示的长度都是大于零的整数。输入格式 输入包含2行的块。第一行包含裁原创 2021-11-28 22:49:12 · 214 阅读 · 0 评论 -
算法训练 My Bad
试题 算法训练 My Bad资源限制时间限制:1.0s 内存限制:256.0MB问题描述 一个逻辑电路将其输入通过不同的门映射到输出,在电路中没有回路。输入和输出是一个逻辑值的有序集合,逻辑值被表示为1和0。我们所考虑的电路由与门(and gate,只有在两个输入都是1的时候,输出才为1)、或门(or gate,只要两个输入中有一个是1,输出就是1)、异或门(exclusive or(xor)gate,在两个输入中仅有一个是1,输出才是1)和非门(not gate,单值输入,输出是输入的补)组原创 2021-11-28 22:48:50 · 86 阅读 · 0 评论 -
算法提高 翔集合
试题 算法提高 翔集合资源限制时间限制:1.0s 内存限制:8.0MB问题描述 集合M至少有两个元素(实数),且M中任意两个元素差的绝对值都大于2,则称M为“翔集合”,已知集合S={1,2…,n},请求出n的子集中共有多少个翔集合。输入格式 输入共一行,一个整数n.(n>=2)输出格式 输出共一行,一个整数表示S的子集中共有多少个翔集合,由于个数可能过大,请输出这个值除以1000007的余数。样例输入4样例输出1数据规模和约定 对于20%的数据,2<=n&原创 2021-11-28 22:47:16 · 346 阅读 · 0 评论 -
算法训练 网络流裸题
试题 算法训练 网络流裸题资源限制时间限制:1.0s 内存限制:256.0MB问题描述 一个有向图,求1到N的最大流输入格式 第一行N M,表示点数与边数 接下来M行每行s t c表示一条从s到t的容量为c的边输出格式 一个数最大流量样例输入6 101 2 41 3 82 3 42 4 42 5 13 4 23 5 24 6 75 4 65 6 3样例输出8数据约定:n<=1000 m<=10000#include <bits原创 2021-11-28 22:46:15 · 543 阅读 · 0 评论 -
经典算法:动态规划(由入门到精通,由探寻到实践)
人文定义:动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。基本思想与策略编辑:由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一原创 2020-12-06 22:27:41 · 177 阅读 · 0 评论 -
聪明的“KK”(动态规划)
题目描述非洲某国展馆的设计灵感源于富有传奇色彩的沙漠中陡然起伏的沙丘,体现出本国不断变换和绚丽多彩的自然风光与城市风貌。展馆由五部分组成,馆内影院播放名为《一眨眼的瞬间》的宽银幕短片,反映了建国以来人民生活水平和城市居住环境的惊人巨变。可移动“沙丘”变戏法 的灵感源于其独特而雄伟的自然景观——富于传奇色彩的险峻沙丘。宏伟的结构、可循环的建材,与大自然相得益彰。环绕一周,发现它正是从沙丘那不断变换的形态中汲取灵感的。外形逼真到无论从哪个角度去观察,都能清楚地辨识出沙丘的特征。它“坡面”高达20米,微风吹原创 2020-12-03 21:21:05 · 172 阅读 · 0 评论 -
分分钟的碎碎念( 算法提升 )
问题描述以前有个孩子,他分分钟都在碎碎念。不过,他的念头之间是有因果关系的。他会在本子里记录每一个念头,并用箭头画出这个念头的来源于之前的哪一个念头。翻开这个本子,你一定会被互相穿梭的箭头给搅晕,现在他希望你用程序计算出这些念头中最长的一条因果链。 将念头从1到n编号,念头i来源于念头from[i],保证from[i]< i,from[i]=0表示该念头没有来源念头,只是脑袋一抽,灵光一现。输入格式 第一行一个正整数n表示念头的数量 接下来n行依次给出from[1],from[2],.原创 2020-11-25 20:32:15 · 335 阅读 · 0 评论 -
小汽车的位置(二维坐标运算)
题目描述有一辆智能小车,最初(时间为0)的位置为(0,0),我们想知道它最后的位置。小车以每小时10公里的速度向北移动(以北为y轴正向,以东为x轴正向)。小车会受到一系列依照时间戳记排序的命令,1表示“向左转”,2表示“向右转”,3表“停止”。每个命令的前面有一个时间戳记,所以我们知道该命令是何时发出的。最后一个命令一定是“停止”。我们另外假设,这辆小车非常灵活,它可以在瞬间转弯。以下列输入为例。小车在时间为5的时候收到一个“向左转”的命令1,在时间10收到一个“向右转”的命令2,在时间15收到一个“停原创 2020-11-23 22:31:04 · 1770 阅读 · 0 评论 -
数据结构(算法 数组逆序)
算法 一空间复杂度为O(n)# include<stdio.h>int main (void){ int n,i; scanf("%d",&n); int a[n],b[n]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) b[i]=a[n-i-1]; for(i=0;i<n;i++) a[i]=b[i]; for(i=0;i<n;i++) printf("%原创 2020-11-23 16:28:15 · 452 阅读 · 0 评论 -
数据结构 (矩阵的乘积算法)
n阶矩阵相乘# include<stdio.h>int main(){ int n,i,j,k; scanf("%d",&n); int a[n][n],b[n][n],c[n][n]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { scanf("%d",&a[i][j]); } } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { sca原创 2020-11-22 19:21:13 · 1462 阅读 · 0 评论 -
数据结构 (和最大子序列 算法)
题目描述对于一个给定的长度为N的整数序列A,它的“子序列”的定义是:A中非空的一段连续的元素(整数)。你要完成的任务是,在所有可能的子序列中,找到一个子序列,该子序列中所有元素的和是最大的(跟其他所有子序列相比)。程序要求你输出这个最大值。输入输入文件的第一行包含一个整数N,第二行包含N个整数,表示A。其中1<=N<=100000-10000<=A[i]<=10000输出输出仅包含一个整数,表示你算出的答案。样例输入 Copy53 -2 3 -5 4样例输出原创 2020-11-23 15:10:38 · 162 阅读 · 0 评论 -
凶手(算法 假设法)
题目描述巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:A:我不是罪犯B:A、C中有一个是罪犯C:A和B说了假话D:C和F说了假话E:其他五个人中,只有A和D说了真话F:我是罪犯他们中只有一半说了真话,凶手只有一个。本题可能有多种可能性,即正确答案(找到唯一的凶手)可能有多个,但每一个可能的答案(某一个是凶手)都满足上述口供。请编程找出可能的凶手输出。(假设唯一的凶手是A或者D或者E,则输出结果为三行,按字母顺序依次输出)样例输入无样例输出ADE解题思路:因为这类题目上面原创 2020-11-21 23:13:57 · 410 阅读 · 0 评论