- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 1003. Emergency (25)
1. 原题链接1003. Emergency (25)2. 理解题目图结点表示城市,点权表示每个城市的救援队伍数量,边权表示城市间的距离;给出”城市图”信息; 求出从起始城市(st)到终点城市(ed)的最短路径、最短路径条数和所能携带的救援队伍的最大数量;3. 解题思路[思路]我们知道可以采用链表和数组的方式进行存储图信息,这里我们采用数组的方式;其中w[c1]表示城市c1的救援队伍数,即点权;
2017-10-27 09:25:48 227
原创 1004. Counting Leaves (30)
1. 原题链接1004. Counting Leaves (30)2. 理解题目给出一棵树的信息(不是二叉树),格式:父结点id 子结点个数 子结点id ;求出每一层的叶子结点的个数; (根结点的id=01,层数为1)3. 解题思路[思路]可以采用结构体来存储孩子结点的id:由于孩子结点个数不确定,所以可以采用vector的C++容器进行保存,比较方便; 用一个数组leafnode[]来保存每一
2017-10-27 09:23:23 184
原创 1009. Product of Polynomials (25)
1. 原题链接1009. Product of Polynomials (25)2. 理解题目给出两个多项式,输出乘积的结果;(给出的项按照exp递减的顺序,输出也要按照这个要求);3. 解题思路[思路]先用结构体数组来存储每一项的exp和coe,然后进行两层遍历,按照多项式乘积的规则,将结果的exp存储在double ans[]数组下标, coe结果存储在数组内容中;然后按照exp从大到小输出c
2017-10-27 09:20:01 212
原创 1008. Elevator (20)
1. 原题链接1008. Elevator (20)2. 理解题目电梯开始在0层,依次给出将要到达的层,根据计分规则求出最后的时间;3. 解题思路比较简单,不多说。4. AC代码#include<cstdio>const int maxn=110;int n,a[maxn];int ans=0;int main(){ scanf("%d",&n); a[0]=0; fo
2017-10-27 09:18:24 170
原创 1007. Maximum Subsequence Sum (25)
1. 原题链接1007. Maximum Subsequence Sum (25)2. 理解题目给一个K个数字的数列,输出最大连续子序列和,首元素和尾元素;如果该数列都是负数,输出0以及整个数列的首、尾元素;3. 解题思路作为算法入门的例题,我们知道求最大连续子序列和的方法有4种(可以参见刘汝佳紫书–P220-224),本题经测试在O(N2N^2)复杂度下仍可以通过; 下面就采用O(N2N^2)和
2017-10-27 09:16:57 175
原创 1006. Sign In and Sign Out (25)
1. 原题链接1006. Sign In and Sign Out (25)2. 理解题目输入不超过15位的id_number、进入时间、出去时间;求出最早进入和最晚出去的id_number;3. 解题思路[思路1]可以直接用char 数组存储进入和出去的时间,然后通过strcmp就可以比较时间早/晚;通过strcpy函数 将符合的id_number进行拷贝存储;[思路2]可以用C++中的stri
2017-10-27 09:13:52 192
原创 1005. Spell It Right (20)
1. 原题链接1005. Spell It Right (20)2. 理解题目 输入一个小于1010010^{100}的非负整数,求出各位数字和,并用英文一次输出和的各位数字;3. 解题思路[思路1]由于输入的数字范围太大,所以只能按照字符/字符串输入;为了方便求和,可以按照字符依次输入,然后求和;为了方便输出对应的英文,所以可以先用一个char二维数组进行打表;将数字和对应的英文存储好;
2017-10-25 16:50:35 145
原创 1002. A+B for Polynomials (25)
1. 原题链接1002. A+B for Polynomials (25)2. 理解题目通过指数(exp)和系数(coe)的形式输入两个多项式中系数不为0的项,且按照指数递减的顺序输入,求相加后的结果(也按照指数递减的顺序输出)。3. 解题思路[思路1]定义结构体数组来保存多项式,结构体中exp记录指数,coe记录系数;声明结构体数组变量a[],b[],ans[]分别保存输入的两个多项式和结果多项
2017-10-25 16:31:47 190
原创 1001. A+B Format (20)
原题链接题意理解解题思路思路1思路2AC代码1. 原题链接1001. A+B Format2. 题意理解给出数字a,b,求a+b并从右往左每3个数字用逗号隔开3. 解题思路[思路1]先求出数字c,如果是负数先输出-号并对c取负变正,然后不断求余并保存在一个新数组a中;假设c=2378562,我们知道结果应该是 2,378,562,对应a[ ]内容如下: a[0] a[1] a[
2017-10-25 14:00:57 170
原创 PAT题解——1102. Invert a Binary Tree (25)
[声明]本解法直接采用rch[]和lch[]两个数组来存储二叉树的信息,从程序的写法来看比《算法笔记》上的解法会更简单些; 1. 题目链接:https://www.patest.cn/contests/pat-a-practise/1102 2. 解题思路:直接存储翻转后的二叉树信息;然后层次和中序遍历输出即可; 3. AC代码:#include<cstdio>#include<queue>
2017-08-31 14:04:37 217
原创 PAT题解——1020. Tree Traversals
[声明]:《算法笔记》上给出的代码是采用二叉链表的形式进行建树,然后再层次遍历;这里的思路相同,只是采用了数组的方式建树,代码写起来比较简洁方便; 1. 题目链接:https://www.patest.cn/contests/pat-a-practise/1020 2. 解题思路:思路比较简单,不再赘述;简单说就是先建树,再层次遍历即可; 3. AC代码:#include<cstdio>#i
2017-08-18 23:01:31 157
原创 PAT题解——1051. Pop Sequence (25)
[声明]:本篇文章的思路和《算法笔记》上的相同,但是仅采用c语言,不涉及stack的用法; [题目链接]:https://www.patest.cn/contests/pat-a-practise/1051 [解题思路]: ①使用ch数组存放待检验的序列(为了方便代码中下标从1开始);用cur指示ch的不同位置; ②使用stack数组来模拟待检验的序列,top模拟进栈和弹出;top=0表示空
2017-08-14 16:45:40 226
原创 PAT题解——1071. Speech Patterns (25)
[声明]:这道题其实大体上和《算法笔记》的思路相同,但是使用了迭代器it对str进行扫描,和《算法笔记》上使用i和str.length()略有区别;不过还是贴出来; [题目链接]:https://www.patest.cn/contests/pat-a-practise/1071 [解题思路]:使用getline输入string str;并扫描,遇到非数字和字母的符号时将得到的词计入map#in
2017-08-13 20:37:02 317
原创 HTML5基础入门(笔记分享)
[整理来源]:html5+css3+jQuery Mobile (2th)[笔记分享]:HTML5 和 HTML4 差异:简化:DOCTYPE、html、meta、script等标记被大幅度简化; 等废除; 新增:①统一内嵌影音:用或者标记播放影音,替代以前需要用Flash Player 或者Quiktime Player来播放; ②新增语义标记
2017-08-11 22:39:20 294
原创 PAT题解——1095. Cars on Campus (30)
[声明]:由于本人在使用《算法笔记》的过程中有部分题解和《算法笔记》上的解法不同,特此作为记录,同时可以提供新的思路供读者参考; 1. 题目链接:https://www.patest.cn/contests/pat-a-practise/1095 2. 解题思路: ①首先将输入的信息存储在结构体数组rec[]中,然后按照车牌号升序、时间升序排序(本题中用了C++的sort函数,用C中的
2017-08-07 12:22:43 247
原创 PAT题解——1083. List Grades (25)
[声明]:由于本人在使用《算法笔记》的过程中有部分题解和《算法笔记》上的解法不同,特此作为记录,同时可以提供新的思路供读者参考; 1. 题目链接:https://www.patest.cn/contests/pat-a-practise/1083 2.解题思路:本题思路较简单,不多赘述;本题解和《算法笔记》上的题解区别在于如何输出符合grade范围的结构体信息;《算法笔记》中采用先整体排序后再依
2017-08-06 12:15:33 210
原创 PAT题解——1075. PAT Judge (25)
题目链接:https://www.patest.cn/contests/pat-a-practise/1075解题思路:由于同一个user_id可能有多次的记录,所以将结构体数组下标看做id; 每个结构体中记录每题的得分、用户ID(用于输出)、总分、排名、满分题目的数量;注意最后输出的有效用户的数目的判断(见下面用于记录有效用户数量的outnum变量的说明);AC代码:#include<cst
2017-08-06 11:36:53 264
原创 PAT题解——1012. The Best Rank (25)
[声明]:由于本人在使用《算法笔记》的过程中有部分题解和《算法笔记》上的解法不同,特此作为记录,同时可以提供新的思路供读者参考; 题目链接:https://www.patest.cn/contests/pat-a-practise/1012解题思路: ① 为了找到最好的排名,每个学生设置一个包含各个科目排名的数组rank[4],从而可以找到最小排名的科目;又由于最小排名相同时有科目的优先级,
2017-08-05 11:48:53 667
原创 PAT题解——1028. List Sorting (25)
[声明]:由于本人在使用《算法笔记》的过程中有部分题解和《算法笔记》上的解法不同,特此作为记录,同时可以提供新的思路供读者参考; 题目链接:https://www.patest.cn/contests/pat-a-practise/1028解题思路:本题和《算法笔记》上的解法差别在于,本题将不同要比较的项目统一为char 数组类型,可以通过C的值直接进行比较,而不用写出各种比较项目的cmp函数;
2017-08-05 09:55:04 211
原创 PAT题解——1016. Phone Bills (25)
[声明]:由于本人在使用《算法笔记》的过程中有部分题解和《算法笔记》上的解法不同,特此作为记录,同时可以提供新的思路供读者参考; 1. 题目链接:https://www.patest.cn/contests/pat-a-practise/1016 2. 解题思路: ① 用结构体存储姓名、月、日、时、分以及状态(0表示off-line,1表示on-line); ②对所有
2017-08-05 09:43:55 293
原创 题解:子串(UVa 10304)
题目链接:https://vjudge.net/problem/UVA-10304解题思路:这题比较简单,直接参考代码就行。AC截图: AC代码:#include<stdio.h>int main(){ char a[100000],b[100000]; while(~scanf("%s%s",a,b)){ int i=0,j=0; while
2017-05-11 23:09:40 263
原创 题解:浮点数(UVa 11809)
题目链接:https://vjudge.net/problem/UVA-11809解题思路:本题当时考虑了很久没能AC,后来参考了网上的思路和解法,可以参考这篇博客的解题思路;AC截图: AC代码:#include<stdio.h>#include<math.h>#include<string.h>int main(){ long long Z[15][35]; doub
2017-05-11 22:52:59 530
原创 题解:盒子(UVa 1587)
题目链接:https://vjudge.net/problem/UVA-1587解题思路: 假设有长方体:a=1 b=2 c=3 ,我们将六个面的数据进行二重排序,即先一个面上两条边从小到大排序,然后按照第一个数字从小到大排序可以得到:ab ab ac ac bc bc,为了叙述方便,分别标号为a[0]-a[5];其中的两个数据分别表示a[i].x和a[i].y;经观察不难发现,如果要满足构成
2017-05-11 22:48:32 622
原创 题解:换低档装置(UVa 1588)
题目链接:https://vjudge.net/problem/UVA-1588解题思路:主要思路即保持一条不动(为方便称作上游),另一条从上游的第一个位置开始向后不断尝试嵌套,判断是否嵌套成功。因为嵌套成功有2种情况,即下游尾巴是否多出上游;所以考虑上游起始位置+下游长度的值和上游固有长度的较大者即可。此外:我认为有两点需要注意:①如何判断嵌套不成功?可以将字符转化为数字;②上下游要交换,分别求
2017-05-11 22:32:56 935
原创 题解:循环小数(UVa 202)
题目链接:https://vjudge.net/problem/UVA-202解题思路:整体思路就是通过求出2b位小数(存储在一个数组中,选2b位是因为循环小数的位数不可能大于除数,即最多为b位,为了判断循环所以求出2*b位),然后寻找起始循环位置和循环位数。AC截图: AC代码:#include<stdio.h>#include<string.h>int dec[6005];int m
2017-05-11 22:14:26 625 1
原创 题解:DNA序列(UVa 1368)
题目链接:https://vjudge.net/problem/UVA-1368解题思路:最优解中的第j个字母应该是输入中第j列的最多数量的字母;AC截图: AC代码:#include<stdio.h>#include<string.h>char s[55][1005];int num[5][1005];char ans[1005];char find[5]={'A','C','G'
2017-05-10 13:52:32 767
原创 题解:纵横字谜的答案(UVa 232)
题目链接:https://vjudge.net/problem/UVA-232解题思路:见注释;AC截图: AC代码:#include<stdio.h>#include<string.h>char s[15][15];int num[15][15];int main(){ int r,c; int first=0;int count=0; while(scanf
2017-05-10 13:41:13 548
原创 题解:谜题(UVa 227)
题目链接:https://vjudge.net/problem/UVA-227解题思路:略;AC截图: AC代码:#include<stdio.h>#include<string.h>char s[5][7];int x,y;int num=0;int main(){ while(fgets(s[0],7,stdin)){ if(s[0][0]=='Z')ret
2017-05-10 13:27:09 402
原创 题解:周期串(UVa 455)
1. 题目链接:https://vjudge.net/problem/UVA-1225 2. 解题思路:略; 3. AC截图: 4. AC代码:#include<stdio.h>#include<string.h>int main(){ int n; scanf("%d",&n); while(n--){ char s[85];int i
2017-05-10 12:56:49 343
原创 题解:分子量(VUa1586)
题解:分子量(VUa1586)题目链接:https://vjudge.net/problem/UVA-1586解题思路:略;AC截图:AC代码:#include<stdio.h>#include<ctype.h>int main(){ int T; scanf("%d",&T); char s[50]; while(T--){ scanf(
2017-05-10 12:37:49 457
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人