![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT Advanced
AShallWe
MorningStar
展开
-
PAT Advanced 1010
此题题意:给你两个数,确定一个数的进制,然后判断另外一个数能否在合理的进制下表示。如果采用简单的顺序查找,那么可呢会在测试点7运行超时。如果想要过掉这道题,那么要用上二分查找。二分查找的难点在于选择哪一个区间作为查找的范围。首先来确定下界,下界一定是另外一个数的数位上最大的那一个数。为什么呢?因为在进制表示中,一个数每一位中最大的那个数一定是该进制所代表的数小的,例如2f这个数原创 2015-09-02 02:06:29 · 297 阅读 · 0 评论 -
PAT Advanced 1014
队列的模拟题我采用的做法,先将人能插进队列的就先插进队列,然后从中找到此时最小的花费,然后弹出队列,加入新的人。我一开始的时候错了两个测试的地方,第一个,并不是17:00后就没人在办理业务了,而是在17:00之前有受理这个业务,就需要把这个完成下去,所以对于有些数据来说是结束时间可以达到17:00以后的。第二个,错误原因在于思路上出现错误,我原本预想只用把当前所有队列中最短的那个弹出来就行了,原创 2015-10-29 10:55:17 · 489 阅读 · 0 评论 -
PAT Advanced 1086
题意:给你一颗树,然后按照先序序列压进栈,按照中序序列弹出栈。于是乎,题目的意思转变成给你先序序列和中序序列,你要写出后序序列。思路:先序:根 左子树 右子树中序:左子树 根 右子树先从先序中找到一个根,然后在中序里面找到他的左,右子树的范围,关于找范围可以先找到左右子树的长度,这样比较方便确定区间。总结:=-= 浙大真会出题,卡了我半天,贡献几组数据5P原创 2015-10-23 21:54:36 · 497 阅读 · 0 评论 -
PAT Advanced 1074
题意:给你任意长度的链表,再给你一个长度K,需要你对这个链表每一个长度为K的都进行反转。思路:模拟题,然而依旧卡了我很久,第一次错的原因在于没有没看清英文,只做了一次反转,第二次是因为front那里没有添加上“+”号,所以卡了我好久。贡献几组我自己出的数据(不要问为什么不凑够5位)1 8 21 1 22 2 33 3 44 4 55 5 66 6 7原创 2015-11-07 10:37:57 · 374 阅读 · 0 评论 -
Codeforces Round#328 div.2 C
题意:有两个机器人,走路的速度是一样的,一个机器人一步走w米,一个机器人一步走b米,现在给出的赛道长最大为t,问在这些长度中,选择哪些长度会导致平局。需要注意的是,如果此时机器人的下一步将会超过剩余赛道长度,那么机器人就不会走这一步。而所谓胜局的情况是在没有平局的情况下,谁离起点最远谁就是赢家。思路:首先这道题千万不要被速度给搞晕了,即使速度一样,那么频率也有可能不一样。这时候直接看步原创 2015-11-07 10:50:07 · 443 阅读 · 0 评论 -
PAT Advanced 1023
水题,也只是简单的模拟需要注意的一点是:546对于这种double后会进位的数要留意,如果你输出的是092,那么就是少了进位的1。我也因为这个错了一次。#include#include#includeusing namespace std;int number[22];int times[10];int length;void solve(){ int up=0;原创 2015-09-05 12:32:12 · 318 阅读 · 0 评论 -
PAT Advanced 1035
题意:给你一些字符串,对于一些特殊的字符要进行转换。需要注意的地方:If no account is modified, print in one line "There are N accounts and no account is modified" where N is the total number of accounts. However, if N is one,原创 2015-09-05 19:33:43 · 336 阅读 · 0 评论 -
PAT Advanced 1041
题意:给你一些数,让你判断有哪些数是只有一个的,然后打印出最先unique的那个数。注意10^4是有10000,还有数字大小是1到10000,N的大小是1到100000.#include#include#includeusing namespace std;int t;int number[111111];int rep[11111];int unique=-1;void原创 2015-09-05 20:15:55 · 312 阅读 · 0 评论 -
PAT Advanced 1031
1A题意:给你一个字符串,让你按照它给的要求打出U形字符串样子。整个题目中最重要的一句话。it must be satisfied that n1 = n3 = max { k| k 2 for all 3 2 <= N } with n1 + n2 + n3 - 2 = N.这句话的意思有两个:1.n1和n3相等。2.n1和n3的最大值也不能大于n原创 2015-09-05 18:44:06 · 317 阅读 · 0 评论 -
PAT Advanced 1019
水题,直接模拟但提交的时候还是错了几次,原因在于我递归产生的序列是恰好反着的,我没看清,于是错了几次。递归出来的数位是反着的,这点需要记住。代码如下#include#include#include#include#includeusing namespace std;//ifstream fin("fin.txt");//streambuf *old = cin.rdb原创 2015-09-05 12:05:06 · 350 阅读 · 0 评论 -
PAT Advanced 1013
Battle Over Cities简单的并查集应用:思路 先假设这个点不在图里面,然后构建并查集,算有几个连通分量,算完之后,连通分量数-1就能得到需要修建多少条路。源码#include<iostream>#include<fstream>#include<cstring>using namespace std;int tree[1010];//ifstream fin("fin.原创 2015-09-02 19:21:54 · 543 阅读 · 0 评论 -
PAT Advanced 1012
这道题我是一次过的,but。。。。。_(:зゝ∠)_我用了180行,算是我写代码用的最图省事的一个代码,我原本以为只有我那么写,网上收了下博客,发现竟然有同道中人,当时眼泪就掉下来了。现在这段代码风格特别不好,先在这里保存着,待我有空就来优化一下这段代码。关于题目:没什么好说的,就是水水的模拟而已啦~#include#include#include#includeusing原创 2015-09-02 16:28:28 · 203 阅读 · 0 评论 -
PAT Advanced 1011
相当简单的模拟题。思路就是每一行找一个最大的就行了,而且题目已经说明是3行3列的矩阵#include#includeusing namespace std;struct node{ double W, T, L;};double matrix[4][4];//ifstream fin("fin.txt");//streambuf *old = cin.rdbuf(fin.原创 2015-09-02 13:27:26 · 228 阅读 · 0 评论 -
PAT Advanced 1015
题意:要求你把给的这个数按照他给的进制反转下,然后判断是否是素数。是就输出yes,否no坑点:1.1不是素数2.题目说的是10^5,千万别写成10000.。。。。。嘛,这个算眼睛不敏感,要多练。#include#include#include#includeusing namespace std;string s;int number;int r;bool i原创 2015-09-02 23:50:55 · 272 阅读 · 0 评论 -
PAT Advanced 1009
该题题意很简单,是让你求两个多项式相乘得到的结果。这里需要注意的是几种情况:1. 当有指数不为0,系数为0的情况。2.当有为负数的情况,判断有多少个时要用绝对值来,就是这个地方卡了我有一会儿,因为是采用map来做的,所以可能会出现这个问题;#include#include#include#include#include#includeusing namespace st原创 2015-09-01 15:53:52 · 319 阅读 · 0 评论 -
PAT 1054
#include#includeusing namespace std;#define maxn 810int N,M;//int arr[maxn][maxn];char ss[30];mapt;int main(){ cin>>M>>N; int maxx=0; t[maxx]=0; int temp; for(int i=1;i<=N;i++) { for(原创 2016-01-23 21:46:57 · 446 阅读 · 0 评论