自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 习题3-5 谜题【UVa 227】

题目链接Puzzle - UVA 227题目分析这道题目主要复杂度在输入和输出的处理,主要是输入的网格矩阵有空格,所以要用getchar()来进行输入,但是输入的时候又要考虑换行和最后一组输入的情况,输入指令序列也是同样的情况,可能有空白字符。模拟的时候注意数组边界即可。源代码#include<stdio.h>#include<string.h>int main() { char p[5][5]; char ins[1005]; char ch; int x,y

2020-05-22 21:39:27 206

原创 习题3-4 周期串【UVa 455】

题目链接Periodic Strings - UVA 455题目分析这道题目和例题3-6 环状序列比较相似,可以把字符串看成一个环,然后用伪指针由小到大转换位置,得到不同的开始位置,即不同的串,然后比较是否相等,即可求得最小周期。源代码#include<stdio.h>#include<string.h>int main() { int t; char s[85]; scanf("%d",&t); for(int i=0;i<t;i++){ s

2020-05-22 21:26:27 139

原创 习题3-3 数数字【UVa 1225】

题目链接Digit Counting - UVA 1225题目分析这道题目和例题3-5 生成元比较相似,都是需要大的数据重复小的数据的计算过程,所以可以直接打表。源代码#include<stdio.h>#include<string.h>int res[10005][10];int main() { memset(res,0,sizeof(res)); int k; for(int i=1;i<10000;i++) { // 直接复制上一个数的计算结果

2020-05-22 21:18:41 166

原创 习题3-2 分子量【UVa 1586】

题目链接Molar mass - UVA 题目分析这道题目相对来讲比较简单,模拟每个字符即可。注意:最好不要把原子的个数初始化为1,因为会导致如果这个原子数量是12的时候,扫描到第二个字符是2的时候,就会不知道当前的数量是初始化的1还是应该变为10的1(标志位也可以解决)。源代码#include<stdio.h>#include<string.h>#include<ctype.h>int main() { int t; scanf("%d",&

2020-05-22 21:11:47 179

原创 习题3-1 得分【UVa 1585】

题目链接Score - UVA 1585题目分析这道题目是字符串简单题,遍历即可。源代码#include<stdio.h>#include<string.h>int main() { char s[85]; int t; scanf("%d",&t); for(int i=0;i<t;i++) { scanf("%s",s); int len=strlen(s); int tot=0,cur=0; for(int j=0;j<

2020-05-22 21:03:32 156

原创 例题3-6 环状序列【UVa 1584】

题目链接Circular Sequence - UVA 1584题目分析这道题目可用两个伪指针,一个伪指针指向当前保存的最小字典序的表示法的开头,另一个伪指针去枚举起始点,并且去比较两个指针对应的串的字典序,更新最小值。一般环状模拟问题都可以用伪指针+线性表+模来解。源代码#include<stdio.h>#include<string.h>int main() { int t; char s[105]; scanf("%d",&t); for(int

2020-05-22 21:01:16 130

原创 例题3-5 生成元【UVa 1583】

题目链接Digit Generator - UVA 1583题目分析这道题目如果直接暴力的话会超时,一般遇到这种会涉及重复计算的(大的数的计算过程会包含小的数的计算过程的),优先考虑打表。源代码#include<stdio.h> #include<string.h>int res[100005];int main() { memset(res,0,sizeof(res)); for(int i=1;i<=100000;i++) { int t=i,sum

2020-05-22 20:51:42 241

原创 例题3-4 猜数字游戏的提示【UVa 340】

题目链接Master-Mind Hints - UVA 340题目分析这道题目用的比较笨的模拟方法,纯模拟整个寻找的过程,用fn和fa两个数组表示猜测串和答案串的位置的是否可用。然后通过枚举模拟统计的过程。书本思路题目中的A统计的是猜测串与答案串字符对位且相等的次数,B统计的是猜测串与答案串字符不对位但相等的次数。分别对每个字符1~9统计它的出现频率,设在猜测串和答案串出现的频率为c1和c2,则Σmin(c1,c2)其实统计的就是猜测串与答案串字符相等但位置可能对位也可能不对位的次数。其实就有Σm

2020-05-22 20:45:50 227

原创 例题3-3 回文词【UVa 401】

题目链接Palindromes - UVA 401题目分析这道题目可使用两个常量数组,并且用了两个伪指针,回文词判断就是两边指针往内收缩,全部相同就是回文词(如果是长度为奇数最中间的字符不需考虑),镜像词同样也是两边指针往内收缩,但是要判断是不是为互相的镜像字符 (注意:长度为奇数的话最中间的字符需要判断是否为自己的镜像字符)。源代码#include<stdio.h>#include<string.h>char ser[]="ABCDEFGHIJKLMNOPQRSTUV

2020-05-22 20:22:13 112

原创 例题3-2 WERTYU【UVa 10082】

题目链接WERTYU - UVA 10082题目分析这道题目可以使用常量数组,直接去获取数组的前一个元素即可。源代码#include<stdio.h>#include<string.h>char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";int main() { int ch; while((ch=getchar())!=EOF) { for(int i=1;i<strlen(s);

2020-05-22 20:12:09 188

原创 例题3-1 Tex中的引号【UVa 272】

题目链接[TEX Quotes - UVA 272](https://vjudge.net/problem/UVA-272)题目分析这道题目的思路较为简单,实际上就是替换引号,由于输入串是左右引号都是一样的,用一个标志位记录是否为左引号/右引号,遇引号切换即可。源代码#include<stdio.h>#include<string.h>int main() { bool l=true; char c; while((c=getchar())!=EOF) {

2020-05-22 20:07:44 162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除