浙大PAT
zz91
浙大cs硕士在读
展开
-
1006. 开门人关门人_时间排序
http://pat.zju.edu.cn/contests/pat-a-practise/1006#include #include #include using namespace std;struct E{ char no[20]; //编号不超过15位 char stime[10]; //开始结束时间 char原创 2013-02-19 10:44:13 · 274 阅读 · 0 评论 -
1037. Magic Coupon_两数字序列乘法
http://pat.zju.edu.cn/contests/pat-a-practise/10371、两个序列做乘法,steps=较小的那个序列长度2、排序之后,负数在前,正数在后。从前往后乘,遇到正数时,再从后往前做正数乘法 核心在于,循环退出条件#include #include using namespace std; int coup原创 2013-02-21 16:36:26 · 674 阅读 · 0 评论 -
1030. Travel Plan_dijkstra算法升级
http://pat.zju.edu.cn/contests/pat-a-practise/1030输出两个城市间的最短路径值,路径经过的结点使用dikstra算法,邻接表保存图,使用栈输出保存的路径理解edge[i] 结点i的邻接链表,保存与i相邻接的边,边结构体保存next,cost,distance理解路径:每当有更短路径经过newP到t,则path[t]=newP,所以原创 2013-02-21 11:43:15 · 316 阅读 · 0 评论 -
1032. Sharing _两链表的相交处地址
http://pat.zju.edu.cn/contests/pat-a-practise/1032用数组实现静态链表,并不对字符操作,所以不需要设置结构体,只用保存下一结点地址即可定义标技术组mark[i],与node[i]相对应,遍历一趟第一个链表,将所有点标记已访问遍历第二个链表,若访问到已访问过的结点则说明,两链表相交,输出此时地址即可#include #include原创 2013-02-21 13:56:34 · 294 阅读 · 0 评论 -
1035. Password
http://pat.zju.edu.cn/contests/pat-a-practise/1035//字符串转换,输出 使用c++下的string类,此时不能用c的scanf。printf。。switch case 语句的使用,vector容器的使用输出的字符串要仔细比对,看细节,there is 与 there are 不同...#include #inclu原创 2013-02-21 15:05:15 · 545 阅读 · 0 评论 -
1009. Product of Polynomials
多项式的积http://pat.zju.edu.cn/contests/pat-a-practise/10091、理解该形式下,多项式积的定义2、数据格式,浮点输入输出3、使用数组先清空,谨慎#include #include int main(){ int k,i,j,c; //多项式的项,不超过10项,c,e暂存输入的指数与系数原创 2013-02-19 13:33:45 · 309 阅读 · 0 评论 -
1013. Battle Over Cities
http://pat.zju.edu.cn/contests/pat-a-practise/1013大意:畅通工程的升级版。n个城市,m条路,删除某个城市,检测剩余城市是否连通,输出能连通需要新增的最少边数1、图的邻接矩阵表示法2、dfs算法得到图的连通分量3、删除图中结点及其相关边,对剩余结点及其边的dfs4、操作都是针对tmp矩阵,每次检查都重新给tmp赋初始值,特原创 2013-02-19 16:27:23 · 340 阅读 · 0 评论 -
1046. Shortest Distance
http://pat.zju.edu.cn/contests/pat-a-practise/1046dis[1]: 1-2的距离dis[2]: 1-3的距离..dis[n-1]: 1-n的距离dis[n]: 1-n-1的距离 即,整个环的长度,正着走的距离+反着走的距离=环长#include #include int dis[100010];in原创 2013-02-26 19:55:04 · 449 阅读 · 0 评论 -
1051.Pop Sequence
http://pat.zju.edu.cn/contests/pat-a-practise/1051#include #include #include using namespace std;stack ans;int a[1005],b[1005];int main(){ int m,n,k,i; while (scanf("%d%d%d",&m,&n,&k)!=EO原创 2013-03-11 10:51:55 · 520 阅读 · 0 评论 -
1042. Shuffling Machine
http://pat.zju.edu.cn/contests/pat-a-practise/1042#include int card[55]; //有序牌int order[55]; //特定顺序int tmp[55]; //暂存中间变换结果 ch原创 2013-03-09 20:29:43 · 560 阅读 · 0 评论 -
1040. Longest Symmetric String
http://pat.zju.edu.cn/contests/pat-a-practise/1040c++中,带空格字符串的输入#include #include using namespace std;int getSym(string str,int pos){ int len=str.length(); int num1=0,num2=0,low,high; /原创 2013-02-26 16:23:12 · 279 阅读 · 0 评论 -
1041. Be Unique
http://pat.zju.edu.cn/contests/pat-a-practise/1041本题若用c++的cin,超时#include int a[100001];int b[100001];//bool mark[100001];int main(){int n,i;scanf("%d",&n);for (i=1;i<=n;i++){ scanf("原创 2013-02-26 18:22:28 · 250 阅读 · 0 评论 -
1003. Emergency_dijkstra(带权值)
http://pat.zju.edu.cn/contests/pat-a-practise/10031、看清题意,求最短路径条数而非最短路径长度2、相同最短路径,输出最大救援人数3、本题是结点附带一个权值(救援人数)与边上的权值不同,两种题型的相应处理熟练掌握4、通过本题掌握: 1、dij求最短路径长度算法(邻接表)原创 2013-02-18 19:05:40 · 347 阅读 · 0 评论 -
1053. Path of Equal Weight
http://pat.zju.edu.cn/contests/pat-a-practise/1053链表的操作,dfs遍历#include #include #include #include #include using namespace std;struct Node { int weight; vector next; //节点的孩子向量,保存nod原创 2013-03-15 19:44:13 · 669 阅读 · 0 评论 -
1036. Boys vs Girls_排序
http://pat.zju.edu.cn/contests/pat-a-practise/1036读懂题意,第一行输出女生,不存在输出Absent 第二行输出男生,不存在输出Absent bool f1,f2=false; 应该是bool f1=false,f2=false; 考试时,这样浪费时间就被拒原创 2013-02-21 15:44:54 · 274 阅读 · 0 评论 -
1025. PAT Ranking
http://pat.zju.edu.cn/contests/pat-a-practise/1025灵活掌握容器的使用#include #include #include #include using namespace std;struct stu{ string no; int score; int location; //原创 2013-02-20 17:23:46 · 271 阅读 · 0 评论 -
1011. World Cup Betting
http://pat.zju.edu.cn/contests/pat-a-practise/1011也可使用二维数组,但i,j循环容易搞错边界使用多个数组,虽然代码长,但清晰。注意浮点输入输出,清空数组#include #include void change(int x) //找出概率最大的,输出胜,平或输{ if (x==1) { p原创 2013-02-19 14:14:20 · 340 阅读 · 0 评论 -
1001_求和结果格式化输出
http://pat.zju.edu.cn/contests/pat-a-practise/1001首先明白格式化,从低位到高位,每三位一组,组之间用逗号隔开因此不能按单位输出,按三位输出获得低三位就是求余1000,获得中间三位就是/1000再求余1000例:999+1=1,000 -10000+1=-9,999因此将结果分为,x>=1 000 000,原创 2013-02-18 12:30:40 · 286 阅读 · 0 评论 -
1002A+B for Polynomials
http://pat.zju.edu.cn/contests/pat-a-practise/1002#include #include double coa[1002]; //分别保存两个多项式指数的系数,最多1000次方double cob[1002]; //coa[i] i次方的指数int main(){ int i,x,k; /原创 2013-02-18 15:43:08 · 288 阅读 · 0 评论 -
1005. Spell It Right
大意:N例:9999 9999 9 ----->81 ------->eight onehttp://pat.zju.edu.cn/contests/pat-a-practise/1005#include #include char num[10][10]={ {"zero"}, {"one"}, {"two"}, {"three"}, {"four"}, {"原创 2013-02-19 10:26:03 · 244 阅读 · 0 评论 -
1015. Reversible Primes_逆素数
http://pat.zju.edu.cn/contests/pat-a-practise/1015素数(质数):只能被1或自身整除的大于1的正整数 基本方法:判断2 ~ sqrt(n)之间没有n的因子. 素数与进制无关 10进制37是素数,其相应2进制 100101,8进制45,都是素数原创 2013-02-19 18:15:11 · 423 阅读 · 0 评论 -
1019. General Palindromic Number_回文数
http://pat.zju.edu.cn/contests/pat-a-practise/1019不要漏掉0的情况,且特殊情况处理后,return#include int a[40]; //10^9转化为2进制不超过40位int size=0;bool isPalindromic(int n,int b){ int i,j; while (n)原创 2013-02-19 18:45:32 · 472 阅读 · 0 评论 -
1008. Elevator
http://pat.zju.edu.cn/contests/pat-a-practise/1008弄明白 if ..if..if...yu if ..else if..else if...区别前者,每次从上到下挨个判断后者,每次循环只能选择一个判断#include int main(){ int n,i,current=0; //当前层current in原创 2013-02-19 11:02:36 · 296 阅读 · 0 评论 -
1023. Have Fun with Numbers
http://pat.zju.edu.cn/contests/pat-a-practise/1023输入:1234567899输出 :Yes 2469135798给出一个大数(a),看它的2倍(b)是否符合以下规则:如a中9出现两次,那么b中9也只能出现两次,但可以在不同的位置上sign的使用意义: 例:1234 与 4231 从原创 2013-02-20 14:36:19 · 369 阅读 · 0 评论 -
1027. Colors in Mars_栈_进制转换
http://pat.zju.edu.cn/contests/pat-a-practise/1027//都要输出#,所以初始化ans就带上#//火星制(本题13),10进制的12,相当于c,是一位输出,所以添'0'//容器的使用:辗转求余得到每一位,先得到低位,却先输出高位,所以使用栈#include #include #include using namespace s原创 2013-02-20 18:10:51 · 235 阅读 · 0 评论 -
1028. List Sorting_结构体排序
http://pat.zju.edu.cn/contests/pat-a-practise/1028简单的结构体排序#include#include#includeusing namespace std;struct E{ char num[10]; char name[10]; int score; }buf[100010];原创 2013-02-20 18:22:45 · 406 阅读 · 0 评论 -
1029. Median_两序列中间数
http://pat.zju.edu.cn/contests/pat-a-practise/1029因为给出的两个数字序列都是递增的,所以归并排序,时间复杂度最小若使用vector,sort,超时输入有大数据,或者非常多次输入时,使用scanf ,printf 而不是用cin,cout(超时)std::merge,所以using namespace std;long 型数据,%原创 2013-02-20 19:33:36 · 534 阅读 · 0 评论 -
1020. Tree Traversals
http://pat.zju.edu.cn/contests/pat-a-practise/1020输入:二叉树中后序序列***********输出:层序1、动态分配结点空间2、前中(后中)------>建树----->层序输出 熟练掌握相关算法3、熟练使用queue+vector#include #include //使用malloc函数,也可用std原创 2013-02-20 11:34:12 · 299 阅读 · 0 评论 -
1024. Palindromic Number
http://pat.zju.edu.cn/contests/pat-a-practise/1024判断回文数,通过翻转求和若干次将输入变为一个回文数例:67 + 76 = 143, and 143 + 341 = 484. 2步通过本题,掌握c++字符串#include #include #include //reverse函数用到usin原创 2013-02-20 15:50:27 · 453 阅读 · 0 评论 -
1004. Counting Leaves
师兄的代码,学习了孙佰贵的专栏 1004. Counting Leaves (30) 1、组合类型,queue2、bfs遍历3、邻接表4、注意事项: ①、先判断层,是否到了下一层。因为可能会到了下一层刚好是叶子,num++,再判断层,保存num,出错 ②、退出w转载 2013-03-15 21:19:48 · 669 阅读 · 0 评论