PATPAT
文章平均质量分 64
pantingting_
TT要好好学习~每天都要比昨天进步一丢丢
展开
-
PAT 1080 Graduate Admission
这道题很简单,但是做了很久。这里想贴两个版本,第一个是不完全正确的,但是仍然想保留下来提醒自己注意留意容易忽略的小细节!总结一下出错的地方,首先是要注意保留学生id,然后要注意在录取环节千万不要把循环变量i当做学生id。个人感觉保存学生rank比保存未排序的stu要好,不容易出错。#include #include #include #include using namespac原创 2015-02-20 15:25:31 · 374 阅读 · 0 评论 -
PAT 1004. Counting Leaves (30)
#include #include #include using namespace std;#define MAXN 150int N,M;vectorvec[150];queueq;int cnt[MAXN];//保存每个层次上的叶子节点个数。int first,last,tmpcnt,level;void BFS(){ while (!q.empty()) {原创 2015-03-09 15:37:59 · 284 阅读 · 0 评论 -
PAT 1006. Sign In and Sign Out (25)
#include #include int early,late,n;char earlyP[20],lateP[20];int time(int hh,int mm,int ss){ int ans=hh*60*60+mm*60+ss; return ans;}int main(){ //freopen("/Users/pantingting/Document原创 2015-03-10 10:57:30 · 256 阅读 · 0 评论 -
PAT Maximum Subsequence Sum (25)
#include int arr[10008];//保存原始数组int dp[10008];//这个数组保存的是以i为结尾的最大子串的长度。int begining[10008];//把以i为结尾的最大子串的开头保存下来。int n;bool allneg=1;int main(){ //freopen("/Users/pantingting/Documents/code/da原创 2015-03-11 11:40:10 · 323 阅读 · 0 评论 -
PAT 1044. Shopping in Mars (25)
#include #include using namespace std;#define MAX 100008struct Range{ int i; int j; Range(int ii,int jj):i(ii),j(jj){};};int n,m;int arr[MAX];//arr[i]存放1-i的部分和,下标1开始有效vector vec;i原创 2015-03-11 20:33:14 · 339 阅读 · 0 评论 -
PAT 1048. Find Coins (25) 超简便做法!!!
@班大大由于题面上硬币值是整数,并且有界!所以我们可以将硬币值作为下标hash。,数组value[i]表示的是面值为i的硬币的个数!!输入完成后也就省去了排序过程。两头逼近查找即可。!机智!!#include #include #include using namespace std;int value[501];int main(){ memset(value,0原创 2015-03-11 21:53:28 · 435 阅读 · 0 评论 -
PAT 1048. Find Coins (25)
我用二分法做的~复杂度是nlogn,下面附上同学做的简洁版本。代码如下#include //二分法#include using namespace std;#define MAXN 100008int n,m,flag=0;//flag=1表示有解int coins[MAXN];int binarysearch(int low,int high,int key){ if (lo原创 2015-03-11 21:22:40 · 263 阅读 · 0 评论 -
PAT 1090 Highest Price in Supply Chain
这道题用BFS求出最大层次以及最大层次上节点的个数就好了#include #include #include #include using namespace std;struct Answer{ int level; int num;};//将每个层次上有多少个节点都记录下来。vector ans;vector vec[100008];//作为图的邻接链表。原创 2015-03-06 21:47:56 · 409 阅读 · 3 评论 -
PAT 1008. Elevator (20)
#include #define MAX 30000int n,current=0,total=0,request;int main(){ //freopen("/Users/pantingting/Documents/code/data/input", "r", stdin); scanf("%d",&n); for (int i=0; i<n; i++) {原创 2015-03-11 10:24:11 · 319 阅读 · 0 评论 -
PAT 1009. Product of Polynomials (25)
#include #include #include #define MAX 2000double arr1[MAX],arr2[MAX],result[2*MAX];int cnt=0,num1,num2;void read(double a[],int & num){ int id; double tmp; scanf("%d",&num); fo原创 2015-03-11 15:31:54 · 343 阅读 · 0 评论 -
PAT 1042. Shuffling Machine (20)
#include #define num 54int k;int muta[num+1];//保存变换规则1-54,0位置不用int poke[num+1];//保存原始poke的编号;int aftermt[num+1];//保存变换后的poke编号void mutate(){ for (int i=1; i<=num; i++) { int newpos=m原创 2015-03-11 09:58:36 · 302 阅读 · 0 评论 -
PAT 1011. World Cup Betting (20)
#include char res[3][2]={"W","T","L"};int main(){ freopen("/Users/pantingting/Documents/code/data/input", "r", stdin); int maxj=0; double sum=0.65,max=0.00; for (int i=0; i<3; i++) {原创 2015-03-11 15:00:05 · 292 阅读 · 0 评论 -
PAT1077
#include #include #include using namespace std;int main(){ int n; char s[500]; string next,suffix; // freopen("/Users/pantingting/Documents/code/data/input", "r", stdin); scanf转载 2015-02-02 15:35:41 · 376 阅读 · 0 评论 -
SET的用法
set中插入一个元素: insert(s1,str1);set中删除一个元素可以这样写:√123456789for (set::iterator it = numSet.begin(),prev = it;it!=numSet.end();)原创 2015-02-21 14:35:47 · 413 阅读 · 0 评论 -
PAT 1002. A+B for Polynomials (25)
#include #include #define MAXK 2000float arr[MAXK];//结果存放在arr1中int count;int main(){ int index; float coeffi; int n; //freopen("/Users/pantingting/Documents/code/data/input", "r"原创 2015-03-09 14:08:06 · 300 阅读 · 0 评论 -
PAT 1003. Emergency (25)
#include #include using namespace std;#define MAXCITY 550struct City{ int id,team,dis; City(int i,int t=0, int d=0):id(i),team(t),dis(d){}};int N,M,C1,C2;int dis,helper,cnt;//暂存DFS中的距离和原创 2015-03-09 15:02:56 · 321 阅读 · 0 评论 -
PAT1081Rational Sum
这道题只要知道最大公约数和最小公倍数的求法就可以做得出来,但是要考虑的输出细节比较繁琐,代码写的很丑啦,不过总算是全部case通过了。//// main.cpp// PTT2//// Created by 潘婷婷 on 15-2-1.// Copyright (c) 2015年 潘婷婷. All rights reserved.//#include #include #原创 2015-02-19 16:15:19 · 450 阅读 · 0 评论 -
PAT1083 List Grades
#include #include#include#include #include using namespace std;struct Stu{ char name[15]; char id[15]; int grade; bool operator <(const Stu & b) const { return grade原创 2015-02-20 17:59:37 · 365 阅读 · 0 评论 -
PAT 1084 Broken Keyboard
其实代码复杂度还是蛮高的,不过,数据范围小呀~~嘿嘿,主要用了set#include #include #include #include using namespace std;char str1[88];char str2[88];set s1,s2;set dif;char upper(char c){ char ans=c; if (c='a') {原创 2015-02-21 14:29:00 · 308 阅读 · 0 评论 -
PAT 1085 Pefect Sequence
查了一下数据范围: bool型为布尔型,占1个字节,取值0或1。 BOOL型为int型,一般认为占4个字节,取值TRUE/FALSE/ERROR。sbyte型为有符号8位整数,占1个字节,取值范围在128~127之间。bytet型为无符号16位整数,占2个字节,取值范围在0~255之间。short原创 2015-02-23 10:51:50 · 450 阅读 · 0 评论 -
PAT1079 Total Sales of Supply Chain
//// main.cpp// PTT2//// Created by 潘婷婷 on 15-2-1.// Copyright (c) 2015年 潘婷婷. All rights reserved.//#include #include #include using namespace std;int Tree[100000];int retailer[100000]原创 2015-02-10 17:41:41 · 429 阅读 · 0 评论 -
PAT1078 Hashing
#include #include #include using namespace std;int hashtable[10000];int isPrime(int x){ if (x==0||x==1) { return 0;//0: not prime; } if (x==2) { return 1; } i原创 2015-02-02 21:26:33 · 346 阅读 · 0 评论 -
PAT 1064 Complete Binary Search Tree
这道题用数组表示法表示完全二叉树,写的神清气爽啊,抓住两点,首先,下标1开始,那么左子树是2*i,右子树是2*i+1. 然后是二叉排序树的性质,二叉排序树的中序遍历是一个排序好的数组。然后我们就可以用中序遍历填好完全二叉树数组,最后按序输出就是层次遍历了。#include #include #include using namespace std;int N;int arr[1005];原创 2015-02-28 21:18:42 · 312 阅读 · 0 评论 -
PAT 1067 Sort with Swap(0,*)
这道题调试了好久,代码写的比较丑,总的来说,抓住1. 0是否在0的位置。2 . 一共有几个环。如果0在环内,则需要的交换次数为环中除0外的个数,如果0不在环内,则需要一个交换将0放入。#include #include #include using namespace std;int n,right1,count;int Father[100005];int FindFather(原创 2015-03-01 22:32:32 · 352 阅读 · 0 评论 -
PAT 1086 Tree Traversal Again
采用二叉树的数组表示方法,用stack保存一下当前节点编号,每push一下都将当前节点编号*2转向左子树,pop的时候就pop出来转向右子树。#include #include #include #include using namespace std;int n,k,current=1;int Tree[10000];int flag=0;char op[2][10]={"Pus原创 2015-03-05 14:36:07 · 336 阅读 · 0 评论 -
PAT 1075 PAT Ranking
#include #include #include #include using namespace std;struct Stu{ int id; int partial[6]; int totalscore; int perfect; int rank; int flag; bool operator <(const Stu原创 2015-03-05 11:01:27 · 264 阅读 · 0 评论 -
PAT1068 Find More Coins (背包问题)
参考了别人的博客,这道题不太懂。http://blog.csdn.net/tiantangrenjian/article/details/17334201#include #include #include using namespace std;int n,m;int arr[100008];int f[10008][108];int has[10008][108];bool原创 2015-03-05 16:04:27 · 294 阅读 · 0 评论 -
PAT 1089. Insert or Merge (25)
参考这里写的http://www.cnblogs.com/kylehz/p/4134915.html#include #include using namespace std;#define MAX 200int n;int initial1[MAX],initial2[MAX];int given[MAX];int flag1=0,flag2=0;bool cmp(int a原创 2015-03-07 20:10:30 · 393 阅读 · 0 评论 -
PAT 1091. Acute Stroke (30)
用BFS做的。#include #include using namespace std;struct node{ int i,j,k; node(int i=-1,int j=-1,int k=-1):i(i),j(j),k(k){}//!!};int M,N,L,T;bool visited[61][1280][128];int pic[61][1280][12原创 2015-03-08 22:08:14 · 463 阅读 · 1 评论 -
PAT 1001. A+B Format (20)
#include #include using namespace std;int a,b;vectorv;int main(){ // freopen("/Users/pantingting/Documents/code/data/input", "r", stdin); scanf("%d%d",&a,&b); int ans=a+b; // printf原创 2015-03-09 10:45:10 · 412 阅读 · 0 评论 -
PAT 1021. Deepest Root (25)
最后一个case没有过,改#include #include #include #include #define MAXN 10008using namespace std;int n,k,first,last,level;int Father[MAXN];// 并查集 int Depth[MAXN]; int visited[MAXN];queue q;vector v[原创 2015-03-13 23:07:29 · 350 阅读 · 0 评论