acm
长门yuki
这个作者很懒,什么都没留下…
展开
-
HDOJ2940高精度阶乘优化版
题目链接:hdoj2940-Hex Factorial在此转到关于本书博客ACM大学生程序设计竞赛在线题库最新精选题解(赵端阳)部分解析原书和网上大多数程序都是从0到200最高位不断加乘,然后判断前导零位置。实际上阶乘是递增记录的,可以每次记录原数组长度,这样不必要原数常数。#include<iostream>#include<cstdio>using namespace std;const int maxn = 200;int res[maxn], num[maxn]原创 2020-10-21 20:47:48 · 178 阅读 · 0 评论 -
HDOJGrey Area
题目链接:HDOJGrey Area在此转到关于本书博客ACM大学生程序设计竞赛在线题库最新精选题解(赵端阳)部分解析简单模拟即可,不过样例前两个实际输出应为0.510000,0.260000;另外书中有笔误,不应为图2-1,应该是图2-2。去零可以乘以10e6模拟,也可以用%g输出,但是此处用printf("%.6lf",sum)也可。ac代码#include<iostream>#include<algorithm>#include<cstdio>#in原创 2020-10-15 23:30:44 · 145 阅读 · 0 评论 -
ZJU1105-FatMouse‘s Tour
题目链接:ZJU1105-FatMouse’s Tour学到了sscanf()从字符中读入数据操作。不过说到底还是题目较怪,数字输入一把以-1或0等等数结尾,但本题以java结尾就很离谱。思路并不难,主要是对字符串处理,给出两种代码:c++代码,g++ 6.5.0编译。用c++中string类可以安全使用getlin();ac代码#include<iostream>#include<algorithm>#include<cstdio>#include<原创 2020-10-12 13:12:25 · 180 阅读 · 0 评论 -
HDOJ1735-字符统计
题目链接HDOJ1735-字符统计个人感觉假如最后一段假如全0怎么算?就是未到n行结果之后全为0,那应该至少前几行满字,最后一行一个字。但测得数据并无这种情况。另一点是假如污染后的段数反而小于总段落数不是无解了?改进书中代码地方:不必要再用一遍for循环记录空白数,直接第一次读入时用index记录最后一行最后有字的位置即可。而且假如该行一个字也没有,那这行至少有一个字,初始化index为1即可,但样例没有考虑这点。int n, m, g;int a[105];int b[10005];int原创 2020-10-12 11:51:01 · 220 阅读 · 1 评论 -
PATL3-013非常弹的球
本题显然是水题题目连接:PATL3-013非常弹的球实际上推出公式真的是水题,甚至模拟算也可。角度45度时最远(为什么?高中物理王后雄辅导书证明过了,不会真的有人还不知道45度抛最远吧 )。那么水平初速度和竖直初速度就是Vx=Vy=V=(2E/m)\sqrt (2E/m)(2E/m)由gt=Vy可得在空中运动时间为Tx=2*t=2∗Vy/g;2*Vy/g;2∗Vy/g;所以每次水平前进距离x=Vx∗TxVx*TxVx∗Tx=2∗Vx22*Vx^22∗Vx2/g=2E/mg2E/mg2E/mg原创 2020-10-12 11:33:37 · 494 阅读 · 0 评论 -
ST算法Sparse Table(附图理解)洛谷3865【模板】ST表
网上一搜全是公式,公式很好懂,然后直接贴代码,简直都是一个模子刻的题解。当然确实代码很简单,能看懂,但没有图我自己要画半天啊??洛谷3865【模板】ST表如果不知道公式以及边界条件判断可以参考这篇题解。或者这篇英文讲解简单介绍下公式:我先给出洛谷样例数组方便观察:9 3 1 7 5 6 0 8(注意我们数组从1开始存)好像画的有点丑 o( ̄ε ̄*)我们用数组M[i][j]表示以i为起点,区间长度为2^j的区间最值。比如M[2][2]就是从第2个数开始长度为为4的最大值,3,1,7,5中显然原创 2020-07-01 21:00:07 · 248 阅读 · 0 评论 -
Caesar Cipher凯撒密码
题目如下:(注意可能不按字典序排列)这些入门算法题处境很尴尬,大佬轻松ac,像我这种小白查了半天资料不知道怎么搞,这样一来,我这种弱鸡网上就没得嫖 ,蒟蒻玩家表示初学很心累。主要是kmp算法,如果不懂参考这篇文章:什么是kmp算法。先说下题意吧,给出字符A,明文w,和加密文s,在s中单词w只会出现一次(注意题目黑体字,英语不好我纳闷这题很久 ),输出位移密码即可。当然先处理字符串,A中只包含a-z;A-Z;0-9;这些都是ascii码表中字符,凯撒密码按照一个shift值来排密码,此处不一定按字典原创 2020-06-25 08:20:07 · 1002 阅读 · 0 评论 -
2020中国大学生程序设计竞赛(CCPC)网络选拔赛min25筛
2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛(部分题解)这次B题ac太多人了,现场时过了快700多人。导致我们队写完签到拼命打表这个题。思路不难,求一次[3,n+1]的连续和,再求[3,n]的素数和。但问题是n太大了,线性筛必定tle,而我们队没有数论选手就很难受(哭)。最后只能打表还是tle。赛后还有各种实验,就先补上部分题解。B题真就人均min_25筛,是我太菜了。思路并不难,从{2}开始,3如果连到2边,权值只能是2*3=6,4的话可以连到{2,3}中的2,权值即为本身,确实和Kru原创 2020-09-25 09:52:16 · 1026 阅读 · 0 评论 -
ACM大学生程序设计竞赛在线题库最新精选题解(赵端阳)解析
在线OJ题库部分解析主要练习书中ZOJ,HDOJ。章节(不定时更新)在线OJ题库部分解析前言第1章基础编程技巧题第2章模拟编程技巧题更新线前言本书介绍:ACM大学生程序设计竞赛在线题库最新精选题解说实话我觉得新手确实需要一份刷题单,带解析那种。我个人也是新手才开这本书的题,连续追更中……我觉得写完读别人代码有很大提升,但是看题解大多数oj并不支持阅读其他人ac代码,而且很难找到优秀的代码。这本书给的代码让我学会很多奇巧淫技 。洛谷题单还行就是不太循序渐进而且刷的题太多。这本书题单大多不错而原创 2020-10-12 13:34:03 · 6267 阅读 · 5 评论 -
HDOJ1627-Krypton Factor
本题用dfs构造字符串,如何巧妙的判断是否有重复字符串呢。实际上还是dp思想,因为前cur-1个字符是合法的,只需要判断加入第cur后是否合法即可。因此从第cur位到中间位尝试比较前面相等长度字符串即可。鉴于新手容易写错回溯条件发下源码:#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<map>#include<que原创 2021-06-04 13:44:49 · 105 阅读 · 0 评论 -
HDOJ1015-Safecracker优化版
纯暴力搜索是可以过的。但要求答案是最大的字典序,显然先排序后搜索可以一遍求出答案后就返回。但新手写回溯会出种种bug,最经典莫过于不知道如何返回而陷入死循环。这里给出一个参考代码:#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<map>#include<queue>#include<string>原创 2021-06-03 16:03:32 · 131 阅读 · 0 评论 -
ZOJ1210毒瘤大整数幂乘题
此题巨坑!题目链接:ZOJ1210-Reciprocals在此转到关于本书博客ACM大学生程序设计竞赛在线题库最新精选题解(赵端阳)部分解析话说本书这个代码真的能过样例吗?tmd样例都过不了还好意思发代码??先放一张我的ac:简单说下本题思路,书上算法分析没问题,就是实现很迷:本题输入总可以写成2x ∗*∗ 10y或者5x ∗*∗ 10y;所以首先去掉这个数的后缀零,然后输出时补上y-1个零即可。其次判断前面数究竟是2或者5的多少次方。众所周知,5的n次方末尾永远是5,所以去掉零后判断末尾是原创 2020-10-27 21:23:10 · 158 阅读 · 0 评论