
PAT甲级
文章平均质量分 63
Aden2224
这个作者很懒,什么都没留下…
展开
-
1011. World Cup Betting (20)
简单模拟#include #include #include #include #include #include #include #include #include using namespace std;int main(){ double a[3][3]; int index[3]; for(int i=0;i<3;i++)原创 2017-04-06 16:33:00 · 210 阅读 · 0 评论 -
1052. Linked List Sorting (25)
模拟链表,排序即可,但是注意链表可能不包含所有的节点。#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=1e5+10;struct Node{ int add; int key原创 2017-04-09 18:19:03 · 209 阅读 · 0 评论 -
1051. Pop Sequence (25)
模拟栈的操作。#include #include #include #include #include #include #include #include #include using namespace std;int main(){ int m,n,k; //freopen("E://PAT/input.txt", "r", stdin); s原创 2017-04-09 18:13:43 · 278 阅读 · 0 评论 -
1050. String Subtraction (20)
hash思想原创 2017-04-09 18:07:59 · 193 阅读 · 0 评论 -
1049. Counting Ones (30)
从个位开始分别算出从1到n这个位有多少的1如果这位大于1,那么1的总数等于(左边的值+1)*(右边的位数)如果这位等于1,那么1的总数等于(左边的值)*(右边的位数)+右边的值如果这位等于0,那么1的总数等于(左边的值)*(右边的位数)#include #include #include #include #include #include #inclu原创 2017-04-09 18:02:52 · 256 阅读 · 0 评论 -
1048. Find Coins (25)
简单判断是不是有两个数的和为m.#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=1e5+10;int n,m,num[maxn];bool flag=false;//int v1=500原创 2017-04-09 17:58:01 · 201 阅读 · 0 评论 -
1047. Student List for Course (25)
#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=1e5+10;struct stu{ char name[5];};bool cmp(stu a,stu b){ return原创 2017-04-09 17:51:09 · 226 阅读 · 0 评论 -
1046. Shortest Distance (20)
计算下前缀和,再判断是直接走还是反向绕过去。#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=1e5+10;int n,m,sum,dis[maxn];int main(){ //f原创 2017-04-09 17:44:42 · 284 阅读 · 0 评论 -
1045. Favorite Color Stripe (30)
简单DP问题#include #include #include #include #include #include #include #include #include using namespace std;int n,m,l;int main(){ //freopen("E://PAT/input.txt", "r", stdin); scanf(原创 2017-04-09 17:36:13 · 328 阅读 · 0 评论 -
1044. Shopping in Mars (25)
求连续子序列和为m或最接近m。#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=1e5+10;struct chain{ int s; int e;};chain c;v原创 2017-04-09 17:30:44 · 220 阅读 · 0 评论 -
1043. Is It a Binary Search Tree (25)
建立两棵相反的BFS,然后遍历判断是否相同。#include #include #include #include #include #include #include #include #include using namespace std;struct Node{ Node *left; Node *right; int c;}Tree[2002原创 2017-04-09 17:18:11 · 367 阅读 · 0 评论 -
1042. Shuffling Machine (20)
#include #include #include #include #include #include #include #include #include using namespace std;char ch[]={'S','H','C','D','J'};const int total=54;int n,num[total+1];int ans[2][total原创 2017-04-09 17:07:41 · 204 阅读 · 0 评论 -
1041. Be Unique (20)
#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=1e4+10;int num[maxn];int n,ans=-1;vector m;int main(){ scanf("%d",原创 2017-04-09 17:07:03 · 230 阅读 · 0 评论 -
1053. Path of Equal Weight (30)
DFS遍历,顺便记录前驱路径,注意排序问题即可。#include #include #include #include #include #include #include #include #include using namespace std;struct Node{ int w; vector child;};int n,m,s,cnt,pre[原创 2017-04-10 15:42:40 · 204 阅读 · 0 评论 -
1054. The Dominant Color (20)
#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=800*600;int m,n,num[maxn];int main(){ //freopen("E://PAT/input.txt",原创 2017-04-10 15:44:17 · 226 阅读 · 0 评论 -
1010. Radix (25)
这题是参考网上的代码,需要注意两点:1、radux的取值可能非常大,所以需要需用unsigned long long 类型; 2、需要使用二分查找3、进行二分查找时,中间临时值可能非常大,甚至大出unsigned long long 表示范围,需要特殊的比较函数,但题目数据并不是那么强,所以不用特殊比较函数也能过。#include #include #include #inc原创 2017-04-06 16:22:12 · 209 阅读 · 0 评论 -
1009. Product of Polynomials (25)
和A+B差不多,还是要注意0不用输出。#include #include #include #include #include #include #include #include #include using namespace std;#define max 1001double a[max];double b[max];double c[max*2];int原创 2017-04-06 15:12:12 · 202 阅读 · 0 评论 -
1008. Elevator (20)
#include #include #include #include #include #include #include #include #include using namespace std;int a[1000]={0};int main(){ int n; while(scanf("%d",&n)!=EOF){ for(int i原创 2017-04-06 14:53:07 · 280 阅读 · 0 评论 -
1007. Maximum Subsequence Sum (25)
求连续子序列的最大和,记录起始与结束位置。扫描一遍,和小于0则舍弃。注意全为负数的情况。#include #include #include #include #include #include #include #include #include using namespace std;int a[10001];int main(){ int k;原创 2017-04-06 14:49:10 · 259 阅读 · 0 评论 -
1006. Sign In and Sign Out (25)
#include #include #include #include #include #include #include #include #include using namespace std;char firstTime[20]="23:59:59";char lastTime[20]="00:00:00";char firstPer[20];char las原创 2017-04-06 14:39:54 · 296 阅读 · 0 评论 -
1005. Spell It Right (20)
#include #include #include #include #include #include #include #include #include using namespace std;char numToEng[10][10]={"zero","one","two","three","four","five","six","seven","eight","ni原创 2017-04-06 14:35:07 · 234 阅读 · 0 评论 -
1004. Counting Leaves (30)
用vector存储每个非叶子节点的孩子,再一次dfs找出叶子节点以及最大深度。#include #include #include #include #include #include #include #include #include using namespace std;struct node{ vector child;};node tree[105]原创 2017-04-06 14:28:53 · 189 阅读 · 0 评论 -
1003. Emergency (25)
用单源最短路径(dijkstra)求出最短路径,顺带求数量和最大值。我用了两种方法:矩阵和邻接表法。#include #include #include #include #include #include #include #include #include #include using namespace std;// 矩阵法const int mx=5e2+10;原创 2017-04-06 11:37:56 · 266 阅读 · 0 评论 -
1002. A+B for Polynomials (25)
注意去掉0的位#include #include #include #include #include #include #include #include #include using namespace std;double polRs[1001];int main(){ int k,nk,maxIndex; double ank; int c原创 2017-04-06 11:19:02 · 220 阅读 · 0 评论 -
1001. A+B Format (20)
#include #include #include #include #include #include #include #include #include using namespace std;int main(){ int a,b; int sum; while(scanf("%d%d",&a,&b) != EOF){ sum = a+原创 2017-04-06 11:11:59 · 204 阅读 · 0 评论 -
1056. Mice and Rice (25)
题意比较晦涩,英文不大好,上网查的分析如下: 1)input中的第三行是索引,表示的是以第三行索引的顺序进行比较,也就是说第6、0、8个mice先组成一组进行比较,而这3个mice吃到的rice就是第二行中对应的值19、25、57,因此第8个mice吃到的是57数量最多晋级,同理第7、10、5个mice吃到的rice是22、10、3,第7个晋级,第9、1、4个mice吃到的rice是5原创 2017-04-10 15:48:39 · 378 阅读 · 0 评论 -
1055. The World's Richest (25)
按年龄保存,排序寻找同一年龄段中最大即可。#include #include #include #include #include #include #include #include #include using namespace std;const int maxn=1e5+10;struct Richer{ char name[10]; int a原创 2017-04-10 15:44:32 · 209 阅读 · 0 评论 -
1040. Longest Symmetric String (25)
为字符串每个字符前后都加一个前导'#',这样可以统一回文串个数奇偶的情况,遍历即可。#include #include #include #include #include #include #include #include #include using namespace std;//1040string s;vector v;int i,j,k,t,ans;i原创 2017-04-09 17:06:24 · 225 阅读 · 0 评论 -
1039. Course List for Student (25)
需要自己写一个hash函数,直接用map的话最后一个case会超时#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; const in原创 2017-04-09 09:40:36 · 256 阅读 · 0 评论 -
1024. Palindromic Number (25)
大数题,反转数字相加#include #include #include #include #include #include #include #include #include using namespace std;string add(string s1,string s2){ string res=""; int c=0,sum; int原创 2017-04-08 14:06:59 · 220 阅读 · 0 评论 -
1023. Have Fun with Numbers (20)
#include #include #include #include #include #include #include #include #include using namespace std;char num1[22];char num2[22];int res[10];int main(){ while(scanf("%s",num1)!=EOF){原创 2017-04-08 13:59:43 · 383 阅读 · 0 评论 -
1022. Digital Library (30)
模拟题#include #include #include #include #include #include #include #include #include using namespace std;struct Book{ char id[81]; char name[81]; char author[81]; vector key原创 2017-04-08 13:51:21 · 346 阅读 · 0 评论 -
1021. Deepest Root (25)
并查集判断连通,再每个节点出发DFS记录最大深度,最后输出最大深度。#include #include #include #include #include #include #include #include #include using namespace std;#define MAX 10001bool visit[MAX]={false};int N;int原创 2017-04-08 13:40:38 · 388 阅读 · 0 评论 -
1020. Tree Traversals (25)
由后序、中序遍历还原树,先序遍历一下。#include #include #include #include #include #include #include #include #include using namespace std;int in[31],post[31];int n;struct node{ node *r,*l; int d;};n原创 2017-04-08 13:25:16 · 219 阅读 · 0 评论 -
1019. General Palindromic Number (20)
简单的进制转换与回文数的判定。#includeint main(){ //freopen("in.txt","r",stdin); int n, b; scanf("%d %d",&n,&b); int s[100]; int k=0; do{ s[k++] = n % b; n /= b; }while(n!=0); //s[k++] = n % b; int原创 2017-04-08 13:10:54 · 188 阅读 · 0 评论 -
1018. Public Bike Management (30)
最短路的变体#include #include #include #include #include #include #include #include #include using namespace std;int Cmax,N,Sp,M;int C[505];int Road[505][505];bool isReached[505];int curLen原创 2017-04-08 12:50:00 · 250 阅读 · 0 评论 -
1017. Queueing at Bank (25)
又一道队列模拟题#include #include #include #include #include #include #include #include #include using namespace std;struct Person{ int hour; int minute; int sec; int last; int原创 2017-04-08 12:41:38 · 600 阅读 · 0 评论 -
1016. Phone Bills (25)
这题我感觉略复杂,hold不住,直接上浅蓝大神的代码。#include #include #include #include #include #include #include using namespace std; typedef long long LL; const int INF = 0x7FFFFFFF; const int maxn =原创 2017-04-08 12:21:57 · 296 阅读 · 0 评论 -
1015. Reversible Primes (20)
素数判断加反转数字。#include #include #include #include #include #include #include #include #include using namespace std;int reverseNumber(int N,int D){ int sum=0; do{ sum=sum*D+N%D原创 2017-04-08 10:34:19 · 238 阅读 · 0 评论 -
1014. Waiting in Line (30)
模拟队列,注意最晚可以是16:59到达服务到17:59#include #include #include #include #include #include #include #include #include using namespace std;#define INF 0x6FFFFFFstruct customer{ int process;原创 2017-04-08 10:24:49 · 244 阅读 · 0 评论