PAT历程
文章平均质量分 66
做题全AC
热爱开源,做只快乐的咸鱼。
展开
-
菜鸟练习PAT(三)
题目标号:A-1003这个题目看到的时候,把它简单地理解成求最短路径,于是想到了用dijkstra算法求图的最短路径。但是最后由于自己黔驴技穷,无法统计顶点的权值。只能参考CSDN上一个浙大CS硕士的一篇文章(需要的请移步至 最短路径数 Dijkstra+dfs ,是个漂亮的姐姐O(∩_∩)O~~)。于是这次由单纯的dijkstra算法变成这样:dijkstra + dfs ,而后我又在网原创 2015-02-24 16:15:29 · 457 阅读 · 0 评论 -
1071. Speech Patterns
#include #include #include #include #include #include #include using namespace std;map result ;bool isLetter(char c){ if( '0' <= c && c <= '9' || 'a' <= c && c<= 'z' || 'A' <= c && c <=原创 2015-08-18 09:55:16 · 418 阅读 · 0 评论 -
1025. PAT Ranking
#include #include #include "string.h"#include using namespace std;typedef struct D{ char num[20] ; int grade ; int group ; int rank ; int grank ; bool operator < (const D d )const {原创 2015-08-18 09:58:08 · 393 阅读 · 0 评论 -
1094. The Largest Generation
#include #include #include #include using namespace std ;#define MAX 256int main(void){ string data ; int con[MAX]; int souLen , desLen ; int i ; memset(con , 0 , sizeof(con)) ; //原创 2015-08-19 16:56:26 · 360 阅读 · 0 评论 -
1081. Rational Sum
#include #include #include #include #include using namespace std;#define MAX 20 typedef struct D{ int num ; int dem ; int exp ; int sig ;}D ; //求最大公约数int gcd(int a , int b ){ re原创 2015-08-19 16:57:29 · 388 阅读 · 0 评论 -
1094. The Largest Generation
#include #include #include #include #include using namespace std;#define MAX 100 map > data ;int ans[MAX] ;int maxChild = 0 , maxLevel = 0 ;void bfs(int p , int level){ int i ; int原创 2015-08-19 19:19:24 · 450 阅读 · 0 评论 -
1024. Palindromic Number
#include #include "string.h"#include using namespace std;//Ë®ÏÉ»¨Êý±äÐÎ#define MAX 100//ÓÃ×Ö·û´®Ä£Äâ¼Ó·¨vector getSum(char * source){ int i ; int len ; int c = 0 ; vectornum; len = s原创 2015-10-01 14:36:54 · 418 阅读 · 0 评论 -
1087. All Roads Lead to Rome (30)
很久没刷PAT了,简单的dfs折腾了好久。 #include #include "stdio.h"#include #include #include using namespace std;#define MAX 220#define INF 999999999typedef struct { int P[MAX][MAX]; int N ;}P ;原创 2016-01-13 10:49:36 · 689 阅读 · 0 评论 -
菜鸟练习PAT(七)
题目标号:A-1007这道题目涉及到一个经典算法,求最大子串和,需要的童鞋请移步至最大子串和问题(Maximum Subarray)。题目在这个基础上规定了全为负数的一个输出,其中请注意一个测试点,就是只存在负数与零构成的字串(例:-1 0 0 -2)。题目:菜鸟代码:#include "stdio.h"#define MAXNUM 10001int dat原创 2015-03-02 22:28:47 · 476 阅读 · 0 评论 -
华为OJ<武研所>——字符串排序
#include #include #include #include #include #include #include using namespace std;#define MAX_NUM 10050vector DATA[26];char ans[MAX_NUM];queueQ;int main(void){ string str ; int i原创 2017-02-21 09:24:52 · 369 阅读 · 0 评论 -
华为OJ<武研所>——素数伴侣
递归判断即可。素数的地方可能处理的不是很到位。#include #include using namespace std;#define MAX_NUM 150typedef struct{ int num ; int visited;}T ;T data[MAX_NUM];int max = -1;bool is_prime(int num){ int原创 2017-02-21 10:11:54 · 851 阅读 · 0 评论 -
回文词(Palindromes, UVa401)
输入一个字符串,判断它是否为回文串以及镜像串。 输入字符串保证不含数字0。 所谓回文串,就是反转以后和原串相同,如abba和madam。 所有镜像串,就是左右镜像之后和原串相同,如2S和3AIAE。 注意,并不是每个字符在镜像之后都能得到一个合法字符。 在本题中,每个字符的镜像如图3-3所示(空白项表示该字符镜像后不能得到一个合法字符)。 输入的每行包含一个字符串(保证只有上原创 2017-02-14 09:18:03 · 482 阅读 · 0 评论 -
猜数字游戏的提示(Master-Mind Hints, UVa 340)
牵扯到一点逻辑... 实现一个经典"猜数字"游戏。 给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。输入包含多组数据。 每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列。 猜测序列全0时该组数据结束。 n=0时输入结束。样例输入:4 13 5 51 1 2 34 3 3 5原创 2017-02-14 09:50:41 · 416 阅读 · 0 评论 -
生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
如果x加上x的各个数字之和得到y,就说x是y的生成元。 给出n(1≤n≤100000),求最小生成元。 无解输出0。 例如,n=216,121,2005时的解分别为198,0,1979。 解法(存在不足之处)#include //求解各个位数字之和 int get_num_sum(int num){ int sum = 0 ; while(原创 2017-02-14 10:11:17 · 903 阅读 · 0 评论 -
环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
长度为n的环状串有n种表示法,分别为从某个位置开始顺时针得到。 例如,图3-4的环状串有10种表示: CGAGTCAGCT,GAGTCAGCTC,AGTCAGCTCG等。 在这些表示法中,字典序最小的称为"最小表示"。 输入一个长度为n(n≤100)的环状DNA串(只包含A、 C、 G、 T这4种字符)的一种表示法,你的任务是输出该环状串的最小表示。 例如,CTCC的最小表原创 2017-02-14 10:30:46 · 448 阅读 · 0 评论 -
数数字(Digit Counting , ACM/ICPC Danang 2007, UVa1225)
表示第一次还真没看明白题目...把前n(n≤10000)个整数顺次写在一起:123456789101112…数一数0~9各出现多少次(输出10个整数,分别是0,1,…,9出现的次数)。#include #include int main(void){ int n ; //freopen("input.txt" , "r" , stdin); //freopen原创 2017-02-14 13:12:33 · 718 阅读 · 0 评论 -
周期串(Periodic Strings, UVa455)
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。 例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的字符串,输出其最小周期。#include #include #define MAX_NUM 100int main(void){ int N ; freopen("input.txt" , "r"原创 2017-02-14 16:16:26 · 345 阅读 · 0 评论 -
LeetCode——1. Two Sum
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the sam原创 2017-03-22 14:08:41 · 273 阅读 · 0 评论 -
1028. List Sorting
#include #include #include "string.h"#include #include using namespace std;int flag = 1 ;typedef struct D{ char ID[10] ; char name[10] ; int grade ; bool operator < (const D d)const {原创 2015-08-18 12:33:09 · 474 阅读 · 0 评论 -
1036. Boys vs Girls
#include #include using namespace std ;typedef struct S{ char name[20] ; char ID[20] ; int grade ; bool operator < (const S s)const { return grade > s.grade ; }}S ;int main(void){原创 2015-08-18 09:54:17 · 474 阅读 · 0 评论 -
1073. Scientific Notation
#include #include #include #include using namespace std ;int main(void){ string data ; string di , exp ; string ans = "" ; char sysDi , sysE ; int nExp ; int eIndex ; //freopen("inp原创 2015-08-18 11:27:04 · 413 阅读 · 0 评论 -
菜鸟练习PAT(一)
题目标号:A-1001先开个头啊,记得以前尝试acm练习题的时候,acm online judge 的第一道题目也是"A+B"的题目,于是看到pat第一题就狂妄自大了,果然没有这么简单,提交了3次才完全正确。为了痛改前非,将练习PAT通过的题目写到这里,来自我警戒。题目:菜鸟代码:#include "stdio.h"int main(void){ int a ,原创 2015-02-21 10:10:32 · 548 阅读 · 0 评论 -
菜鸟练习PAT(四)
题目标号:A-1004感觉这道题目主要是考树的存储和遍历。本来以为用不到树来存储,就直接记录每个level的叶子结点数,但总是有2个测试点过不了。后来发现是因为OJ输出双亲与孩子的时候不一定是从上至下的。于是写了个邻接表存储这棵树,当存储完毕时遍历就可以了。(关于树请移步: 树系列之二:树的存储结构 。)题目:菜鸟代码:#include "stdio.h"#inc原创 2015-02-24 22:24:22 · 424 阅读 · 0 评论 -
菜鸟练习PAT(二)
题目标号:A-1002这个题目在最后提交的时候总是最后几个测试点过不了,有了前一次的经验,猜到肯定是特殊情况没有考虑进去。最后排查到,是当系数为0时,那个阶数也打印出来了。调整了一下,再最后获取总的个数时,浪费了点时间把它的非零值装入了一个链表里了。题目:菜鸟代码:#include "stdio.h"#include "stdlib.h"typedef str原创 2015-02-22 19:35:27 · 500 阅读 · 0 评论 -
菜鸟练习PAT(五)
题目标号:A-1005这道题目和ACM中一道练习题很类似,没有什么太大的难度。注意输入为0时的测试点。题目:菜鸟代码:#include "stdio.h"void showChar(int num){ switch(num) { case 0: printf("zero"); break; case 1: printf("one"); brea原创 2015-02-25 09:45:45 · 415 阅读 · 0 评论 -
菜鸟练习PAT(六)
题目标号:A-1005这道难度不是很大,将字符串转化成数字,比较后存储最大值与最小值即可。题目:菜鸟代码:#include "stdio.h"typedef struct{ char name[15] ; int start ; int end;}Per ;int getTime( char time[] ){ int hour , min原创 2015-02-26 21:11:37 · 433 阅读 · 0 评论 -
菜鸟练习PAT(八)
题目标号:A-1007比较简单的一道题目。题目:菜鸟代码:#include "stdio.h"int main(void){ int count , i , start = 0 , sum = 0 , floor; scanf("%d" , &count); for(i = 0 ; i<count ; i++) { scanf("%d"原创 2015-03-03 12:08:02 · 419 阅读 · 0 评论 -
菜鸟练习PAT(九)
题目标号:A-1007很坑爹的一道题目,数组一定要开得大一点,不然总有两个测试点过不去题目:菜鸟代码:#include "stdio.h"#include "stdlib.h"#include "string.h"#define MAXNUM 12000typedef struct { int N ; float a ;}D;D *aD[MAXNUM]原创 2015-07-10 11:20:14 · 444 阅读 · 0 评论 -
1083. List Grades
#include #include #define MAX 105 typedef struct D{ char name[15] ; char id[15] ; int grade ;}D ;D data[MAX];int main(void){ //freopen("input.txt" , "r" , stdin); int N ; int i ;原创 2015-08-24 19:01:51 · 385 阅读 · 0 评论 -
1042. Shuffling Machine
#include #define MAX 54 void printfFlag(int f){ int t , r ; t = f/13 ; r = f%13 + 1 ; switch(t) { case 0 : printf("S"); break; case 1 : printf("H"); break; case 2 : printf("C"原创 2015-07-21 09:16:51 · 429 阅读 · 0 评论 -
1040. Longest Symmetric String
#include #include #include using namespace std;#define MAX 1005 int main(void){ char sen[MAX]; int len = 0 ; int i ; vectordata ; int max = 0 ; //freopen("input.txt" , "r" , stdin);原创 2015-07-21 08:37:02 · 444 阅读 · 0 评论 -
1048. Find Coins
#include #include using namespace std;#define MAX 1020vectorface ;int main(void){ int n , amount ; int i ; bool flag = false ; face.assign(MAX + 1, 0 ); //freopen("input.txt" , "r" ,原创 2015-07-22 10:51:13 · 459 阅读 · 0 评论 -
1046. Shortest Distance
#include #define MAX 100000int exits[MAX];/****************************************///// ¼Ç¼ºÍ¼´¿É£¬²»ÐèÒª¼Ç¼ÿ¸öµãµÄÖµ///****************************************/int main(void){ int N原创 2015-07-22 17:05:57 · 408 阅读 · 0 评论 -
1051. Pop Sequence
不多说,刘汝佳的《算法入门经典》上的例题,堆栈模拟。#include #include #include using namespace std;#define MAX 1050int main(void){ int N , M , count; int data[MAX] ; int i ; bool flag = true ; queueQ ; //fre原创 2015-07-22 17:01:46 · 418 阅读 · 0 评论 -
1097. Deduplication on a Linked List
牺牲空间换时间。#include #include #include #include using namespace std ;#define MAX 10050typedef struct D{ int add ; int data ; int next ;}D ;vectororder ;vectorremoved ;int visited[原创 2015-08-30 11:25:10 · 302 阅读 · 0 评论 -
1030. Travel Plan
使用dfs即可。#include #include #include using namespace std;#define MAX 550#define INF 99999999typedef struct D{ int len ; int cost ;}D;D data[MAX][MAX];int visited[MAX];vectorans ;原创 2015-08-30 16:07:24 · 367 阅读 · 0 评论 -
1096. Consecutive Factors
#include #include #include using namespace std;vectorans ;int main(void){ int num ; int i; scanf("%d" , &num); for( i = 2 ; i <= num; i ++ ) { int j ; int temp = num ; vectortemp原创 2015-08-30 10:09:11 · 375 阅读 · 0 评论 -
1037. Magic Coupon
#include #include #include using namespace std ;vectorC ;vectorP ;int main(void){ int Nc , Np ; int i , j ; int sum = 0; int last = -1 ; //freopen("input.txt" , "r" , stdin); scanf原创 2015-08-18 09:57:16 · 387 阅读 · 0 评论 -
LeetCode——2. Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i原创 2017-03-22 14:11:16 · 321 阅读 · 0 评论