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 · 234 阅读 · 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 · 234 阅读 · 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 · 300 阅读 · 0 评论 -
1050. String Subtraction (20)
hash思想原创 2017-04-09 18:07:59 · 219 阅读 · 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 · 285 阅读 · 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 · 233 阅读 · 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 · 248 阅读 · 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 · 308 阅读 · 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 · 367 阅读 · 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 · 246 阅读 · 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 · 399 阅读 · 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 · 230 阅读 · 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 · 249 阅读 · 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 · 235 阅读 · 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 · 252 阅读 · 0 评论 -
1010. Radix (25)
这题是参考网上的代码,需要注意两点:1、radux的取值可能非常大,所以需要需用unsigned long long 类型; 2、需要使用二分查找 3、进行二分查找时,中间临时值可能非常大,甚至大出unsigned long long 表示范围,需要特殊的比较函数,但题目数据并不是那么 强,所以不用特殊比较函数也能过。 #include #include #include #inc原创 2017-04-06 16:22:12 · 241 阅读 · 0 评论 -
1009. Product of Polynomials (25)
和A+B差不多,还是要注意0不用输出。 #include #include #include #include #include #include #include #include #include using namespace std; #define max 1001 double a[max]; double b[max]; double c[max*2]; int原创 2017-04-06 15:12:12 · 224 阅读 · 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 · 311 阅读 · 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 · 294 阅读 · 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 · 319 阅读 · 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 · 258 阅读 · 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 · 211 阅读 · 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 · 292 阅读 · 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 · 251 阅读 · 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 · 230 阅读 · 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 · 402 阅读 · 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 · 232 阅读 · 0 评论 -
1040. Longest Symmetric String (25)
为字符串每个字符前后都加一个前导'#',这样可以统一回文串个数奇偶的情况,遍历即可。 #include #include #include #include #include #include #include #include #include using namespace std; //1040 string s; vector v; int i,j,k,t,ans; i原创 2017-04-09 17:06:24 · 255 阅读 · 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 · 284 阅读 · 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 · 246 阅读 · 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 · 415 阅读 · 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 · 378 阅读 · 0 评论 -
1021. Deepest Root (25)
并查集判断连通,再每个节点出发DFS记录最大深度,最后输出最大深度。 #include #include #include #include #include #include #include #include #include using namespace std; #define MAX 10001 bool visit[MAX]={false}; int N; int原创 2017-04-08 13:40:38 · 414 阅读 · 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 · 245 阅读 · 0 评论 -
1019. General Palindromic Number (20)
简单的进制转换与回文数的判定。 #include int 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 · 212 阅读 · 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 · 279 阅读 · 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 · 629 阅读 · 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 · 324 阅读 · 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 · 261 阅读 · 0 评论 -
1014. Waiting in Line (30)
模拟队列,注意最晚可以是16:59到达服务到17:59 #include #include #include #include #include #include #include #include #include using namespace std; #define INF 0x6FFFFFF struct customer{ int process;原创 2017-04-08 10:24:49 · 275 阅读 · 0 评论
分享