数组和字符串
紫书第三章
来老铁干了这碗代码
算法爱好者 终生学习践行者 雨雪刀霜阻不住 不成大神誓不休
展开
-
算法竞赛入门经典|习题3-8, 循环小数(UVa202)
储备知识:1、循环节如果无限小数点后,从某一位起向右进行到某一位止的数字循环出现,首位衔接,则称这个小数为循环小数,这段数字为循环节。例如: 547/7 = 78.(142857)142857。其中, 142857就是循环节。2、循环节的最大位数简单理解:相除就是不断的将因子乘10然后用分子去除,而因子最大不会超过分母,设分母为n,则因子最多为n-1种,因此循环节最长为n-1。...原创 2020-02-10 15:21:25 · 963 阅读 · 0 评论 -
28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告
励志用少的代码做高效的表达题目(提交)链接→UVA-11809算是个数学题吧,虽然在AOAPC上面给放到象征水题的第三章里面了。这个题基本就是帮着你复习了一遍浮点数的存储方式了。浮点数在计算机里是分三部分表示的,最前面一位表示符号,后面一部分是尾数,最后一部分是阶码,表示方法类似于科学记数法,不过是二进制的,尾数是M阶码是E的话那么表示起来就是M × 2^E了。然后对于M还有一个要求,就是1/2 ≤ M < 1,所以用二进制表示M的话就应该是0.1XX……,用计算机表示的时候就把最前面的“0转载 2020-06-20 23:28:00 · 813 阅读 · 0 评论 -
21行代码AC——习题3-7 DNA序列(UVa-1368)_解题报告
励志用尽量少的代码做高效表达。思路:DNA序列:按列遍历,记录每一列出现次数最多(若同样多,则字典序最小)的字母,录入s串累加。距离:重新遍历,录入出现次数比最多次数少(若相等,则字典序较大的)的次数,录入sum累加代码:#include<bits/stdc++.h? using namespace std;int main() { int n; cin >> n; while(n--) { int m, n; cin >> m >> n原创 2020-06-05 23:24:19 · 943 阅读 · 4 评论 -
19行代码AC——习题3-4 周期串(UVa-455)_解题报告
励志用尽量少的代码做高效表达题意:输入一个长度不超过80的字符串,输出其最小周期。思路:本题的最佳思路是取余构造循环串求最小周期按照正常求周期的方法,若取不同周期长度,遍历次数也会不同,稍有不慎遍历的字符就会漏掉或溢出。因此我们采取取余的方式在逻辑上增加串的长度,使得取不同周期长度遍历的次数都是相同的,这样就可以用一个循环解决问题。当然,本题采用字符串分割的方式也可以解决,但太臃肿,低效,因此笔者没有给出实现代码。代码:#include <bits/stdc++.h>usi原创 2020-06-04 21:09:52 · 933 阅读 · 2 评论 -
22行代码AC,三种解法——例题3-6_环状序列(UVa-1584)
励志用尽量少的代码做高效表达题目(提交)链接——>Uva-1584因为是水题,因此做题重心由解题转向优化核心思路:本题共有三种解法:解法一、string字符串中assign()+erase()截取字符串模拟循环 大概思路是利用assign()赋值序列的前半部分,用一中间变量保存,同时用erase()删除前半部分,将后半部分与中间变量连接,就是一条新链,循环取字典序最小者解法二、取余模拟循环(书中解法) 大概思路就是利用取余将序列从逻辑上连接起来,每次从头逐个比较序列,保存较小的,最原创 2020-06-01 23:16:22 · 930 阅读 · 0 评论 -
算法竞赛入门经典(第二版) | 习题3-10 盒子 (pair结构体)(UVa1587,Box)
大意: 给定6个矩形的长和宽,判断他们能否构成一个长方体。题目(提交)链接→UVa-1587没使用过该网站的同学请猛戳这里→vJudge教程储备知识:pair结构体:pair是将2个数据组合成一组数据,当需要这样的需求时就可以使用pair,如stl中的map,就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。简而言...原创 2020-02-25 13:04:48 · 1137 阅读 · 1 评论 -
算法竞赛入门经典(第二版) | 习题3-5 谜题 (UVa227,Puzzle)(World Finals 1993)
乍一看是一个大水题,但World Finals这两个词标示着老子世界决赛真题虽然题目很水但是数据就能卡死你。整整搞了五个小时,期间经历过崩溃(花了这么多时间搞一道大水题,还没AC),但好在坚持下来了,不断的搜网,交流,最后成功AC。题目大意我就不说了,相信来同学们以及把它看得都能倒着背下来了。这里说几点限制:(1)每个输出之间都有一行空格,但最后一个输出之前没有’\n’。(2)‘0’之前...原创 2020-02-14 15:14:44 · 1446 阅读 · 4 评论 -
13行代码AC_习题3-9 子序列 (UVa10340,All in All)
大意:输入两个字符串,判断串B是否可以通过删除0~n个字符变成串A,输入以EOF结尾。Sample Inputsequence subsequenceperson compressionVERDI vivaVittorioEmanueleReDiItaliacaseDoesMatter CaseDoesMatterSample OutputYesNoYesNo分析:...原创 2020-02-13 21:31:39 · 812 阅读 · 0 评论 -
15行代码AC——习题3-3 数数字 (UVa1225,Digit Counting)
大意:把n(n<=10000)个整数顺序写在一起,求0~9分别出现多少次Sample Input2 (笔者注:这个2是输入两次的一次。)313Sample Output0 1 1 1 0 0 0 0 0 01 6 2 2 1 1 1 1 1 1分析:1、这种水题千万不要想得太复杂,用最简单的知识就可以AC。复杂的语法反到易错而臃肿。2、这个题只需要输入n,...原创 2020-02-13 16:48:36 · 770 阅读 · 0 评论 -
26行代码AC——习题3-2 分子量 (UVa1586,Molar Mass)——解题报告
原题我们就不看了,又臭又长。大意:给出分子式,式中只包含以下四种元素。求分子量。C:12.01 H: 1.008 O: 16.00 N: 14.01Sample Input4CC6H5OHNH2CH2COOHC12H22O11Sample Output12.01094.10875.070342.296分析:1、这种水题千万不要想得太复杂,用最简单的知...原创 2020-02-13 15:10:07 · 921 阅读 · 0 评论 -
15行代码AC——习题3-1 得分 (UVa1585,Score)
题意概述给出一个由O和X组成的串,统计得分,O得分为目前连续出现的O的个数,X的得分为0。如:OOXXOXXOOO得分为:1+2+0+0+1+0+0+1+2+3=10Sample Input5 OOXXOXXOOOOOXXOOXXOOOXOXOXOXOXOXOXOOOOOOOOOOOOOOXOOOOXOOOOXSample Output10975530提交链接→...原创 2020-02-13 11:59:19 · 1104 阅读 · 0 评论 -
算法竞赛入门经典(第二版) | 程序3-10 生成元 (UVa1584,Circular Sequence)
题目概述:长度为n的环状串有n种表示法, 字典序最小的称为最小表示。输入一个长度为n(n<100)的环状DNA串的一种表示方法,输出最小表示 。储备知识:字典序:字典序:按字典顺序从两个字符串的第一位开始比较,字典顺序靠前的串较小。若两串前n个字母都相同,但串A长于串B,则串B小。如:ABCD小于BCDA思路:将序列放入无头指针循环链表(一定是无头指针的链表,否则判每次遍历...原创 2020-02-12 19:20:09 · 583 阅读 · 0 评论 -
算法竞赛入门经典(第二版) | 程序3-9 生成元 (UVa1583,Digit Generator)
DescriptionFor a positive integer N, the digit-sum of N is defined as the sum of N itself and its digits. When Mis the digitsum of N, we call N a generator of M.For example, the digit-sum of 245 is...原创 2020-02-12 13:58:09 · 664 阅读 · 0 评论 -
算法竞赛入门经典(第二版) 程序3-8 猜数字游戏的提示(Master-Mind Hints,UVa 340)
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std ;int main(){ int n ;// while((scnaf("%d",&n) == 1) && n != 0) ...原创 2020-02-12 11:36:58 · 618 阅读 · 0 评论 -
算法竞赛入门经典(第二版) | 程序3-6 WERTYU (UVa 10082)(常量数组)
题目描述:输入一个按键盘顺序,向后错一位后敲出的字符串,输出本来想打出的句子, 且输入中不会出现不合法的字符,例如A。Simple input:O S, GOME YPFSU/Simple ouput:I AM FINE TODAY.代码#include <iostream>#include <cstdio>using namespace ...原创 2020-02-11 13:42:00 · 633 阅读 · 0 评论 -
螺旋方阵 | 蛇形填数
人有多大胆,地有多大产,大力出奇迹,你们还不明白吗?代码:#include <iostream>#include <cstdio>using namespace std ;int main(){ //定义变量 int n ; cin >> n ; //输入个数 int i = n ; //第一部分 int ii = i...原创 2020-02-11 11:11:59 · 641 阅读 · 0 评论 -
mem库系列函数合集(memset、memchr、memcmp、memcpy)
关于Mem函数,网上五花八门,使初学者很容易迷失方向,笔者在这里做一个常用函数的总结。希望对读者起到些许帮助。想了解Str系列函数的,请猛戳这里→Str系列函数大全代码#include <iostream>#include <cstdio>#include <string.h>#include <string>using namesp...原创 2020-02-10 22:25:55 · 2002 阅读 · 1 评论 -
Str库系列函数合集(strlen、strcpy、strcmp、strcat、strchr等)
关于Str函数,网上五花八门,使初学者很容易迷失方向,笔者在这里做一个常用函数的总结。希望对读者起到些许帮助。代码#include <iostream>#include <string.h>#include <string>#include <cstdio>using namespace std ;int main(){ cha...原创 2020-02-10 22:05:00 · 2343 阅读 · 0 评论