CCCC
撒旦即可
研究CV的菜狗
展开
-
L1-008 求整数段和
关于printf的一些对齐方式简单来说默认是左对齐的,如printf("%d")但加位数限制会变成右对齐,如printf("%10d"),不足十位,左边会补空格要想有位数限制,且左对齐,则如printf("%-10d"),不足十位,右边会补空格#include<bits/stdc++.h>using namespace std;int main(){ //fr...原创 2019-03-09 11:49:31 · 126 阅读 · 0 评论 -
L3-010 是否完全二叉搜索树
解题思路:#include<cstdio>#include<cstring>#include<queue>using namespace std;int s[500];void insert(int r,int a){ if(s[r]==-1) { s[r]=a; return; } if(s[r]<a) insert(...原创 2019-03-03 23:00:48 · 223 阅读 · 0 评论 -
PAT基础 5-22 龟兔赛跑 (模拟)
#include<cstdio>#include<cstring>#include<queue>using namespace std;int main(){ int t; scanf("%d",&t); int fg=0,tu=0,gui=0; for(int i=0;i<t;i++) { if(!fg) { ...原创 2019-03-02 20:26:23 · 214 阅读 · 0 评论 -
L2-16(有情人)
解题思路:我写了两种解法,其中一种就是两个人都往上回溯五倍,若有交集则不行写法一#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<iostream>using namespace std;struct node{...原创 2019-02-26 17:58:50 · 121 阅读 · 0 评论 -
L2-15(互评成绩)
解题思路:水题#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int inf=0x3f3f3f3f;int s[20];int p[10009];bool cmp(int &a,int &b){ return a&g...原创 2019-02-26 17:57:01 · 105 阅读 · 0 评论 -
L2-104列车调度
解题思路:反正就是每加进一个数,就看看set中有没有比他大的。#include<cstdio>#include<cstring>#include<set>#include<iterator>using namespace std;set<int> s;set<int>::iterator it;int ma...原创 2019-02-26 16:11:18 · 121 阅读 · 0 评论 -
L3-017 森森快递(线段树+贪心)
解题思路:一开始感觉是图论最大流题,但是有些细节感觉没法处理。后来再仔细一想,可以用线段树+贪心来做。但是又有点想偏了,想成优先区间最小的部分,其实应该是优先右边界最小的#include<bits/stdc++.h>#define N 100001using namespace std;typedef long long ll;struct node{ int l,r...原创 2019-03-30 10:50:34 · 449 阅读 · 0 评论 -
L3-018 森森美图
解题思路:这道题用叉乘(这个我感觉比较有创意,我一开始想到的是用gcd来求分界的)将矩阵分成两部分,然后就是用spfa求最短路。#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;int mp[106][105],v[105][105];int dirx[]={1,0,-1,1,-1,1,0,-...原创 2019-03-29 23:34:37 · 348 阅读 · 0 评论 -
PAT 出栈序列的合法性
题目给定一个最大容量为M的堆栈,将N个数字按 1, 2, 3, ...,N的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定M=5、N=7,则我们有可能得到{ 1, 2, 3, 4, 5, 6, 7 },但不可能得到{ 3, 2, 1, 7, 5, 6, 4 }。输入格式:输入第一行给出 3 个不超过 1000 的正整数:M(堆栈最大容量)、N(入栈元...原创 2019-03-16 14:35:13 · 2046 阅读 · 0 评论 -
L3-011 直捣黄龙 (dijkstra变形)
解题思路:使用优先队列优化的dijkstra算法#include<bits/stdc++.h>#define N 201#define inf 0x3f3f3f3fusing namespace std;string s1,s2,s3,s4;int num[N],pre[N],dis[N],st,ed,cnt[N],rcnt[N],sr[N],n,vis[N];map...原创 2019-03-30 23:50:46 · 215 阅读 · 0 评论 -
1025 反转链表
解题思路:把链表转化成数组求解更容易。做的时候,第六个测试点一直过不了,后来发现,原来给的n个点不一定都在链表中......#include<bits/stdc++.h>#define N 1000005using namespace std;struct node{ int k,next,id;}s[N],p[N];int main(){ //freopen(...原创 2019-03-11 13:22:29 · 128 阅读 · 0 评论 -
L3-015 球队“食物链”
解题思路:我觉得这道题就是纯dfs,加上一点剪枝,剪枝就是看一下余下的点有不有连向初始点的点,没有肯定不成立#include<bits/stdc++.h>using namespace std;char c;int mp[21][21];int vis[21],st,n;stack<int> stk;int dfs(int u,int d){ bool...原创 2019-03-30 23:50:55 · 101 阅读 · 0 评论 -
L3-021 神坛
解题思路:如果直接枚举,复杂度为O(n^3),绝对超时。所以枚举每一个点为中心点,然后另外两个点,可以用以该点为中心的相邻的辐射向量进行枚举。这样复杂度就降为O(n^2logn)了,花了2000ms出结果。至于为什么(原理),我觉得大概凭感觉吧。严格的证明我是没法给出#include<bits/stdc++.h>#define N 5003#define inf 0x3f3f...原创 2019-03-30 23:50:36 · 199 阅读 · 0 评论 -
L3-012 水果忍者
解题思路:见https://blog.csdn.net/foreyes_1001/article/details/52208749讲道理这是我做的PAT中做的最最心累的一道题了,没有之一,到现在还不知道哪里有问题。这份代码我认为没有错误了,但是还有一个点过不了,而且最后那个点还随最后一句printf("%d %d %d %d\n",s[st].x,s[st].yl,s[mat].x,s[mat...原创 2019-03-04 20:54:40 · 533 阅读 · 0 评论 -
L1-049 天梯赛座位分配
解题思路:我这个模拟感觉还不够普遍,因为还需要额外列举两个特殊情况出来,都是关于最后一个有队学校,只剩一个队刚开始的那个人编号要不要+1的问题#include<bits/stdc++.h>using namespace std;int a[105],b[105];int mp[101][111];int main(){ //freopen("t.txt","r",st...原创 2019-03-07 11:56:15 · 197 阅读 · 0 评论 -
L2-012 关于堆的判断
解题思路:要是在ACM里谁会自己去写堆,但是PAT......#include<cstdio>#include<cstring>#include<queue>using namespace std;int s[1009],cnt;char t[100],tp[100];void insert(int a){ cnt++; int q=cn...原创 2019-03-02 16:38:14 · 167 阅读 · 0 评论 -
L2-004 这是二叉搜索树吗
解题思路:主要是有镜像存在,那就运行两次就行了,第一次是左子树小于根,第二次是左子树大于根#include<cstdio>#include<cstring>#include<queue>using namespace std;int a[1009],cnt,rt;struct node{ int l,r,v;}s[1009];int bu...原创 2019-03-02 15:50:14 · 343 阅读 · 0 评论 -
l3-4(肿瘤诊断 )
解题思路:一开始用dfs,但有一个超内存了。然后改用bfs,但最后一个总是超时,可这道题也没法大优化。后来发现是我bfs的写法问题,每次都喜欢定义一个vis数组,但这次特别大,每次初始化vis,大概要花费200ms。效率太低了,后来发现这个vis没有必要,只要把路径切断就好了。瞬间速度很快。其实刷刷水题也总是有出乎意料的收获。#include<cstdio>#include&l...原创 2019-02-28 20:19:16 · 258 阅读 · 0 评论 -
l3-3(社交集群)
解题思路:反正就是用深度搜索来确定群#include<cstdio>#include<cstring>#include<set>#include<iterator>#include<algorithm>#include<vector>using namespace std;vector<int>原创 2019-02-28 19:12:28 · 163 阅读 · 0 评论 -
l1-9(N个数求和)
解题思路:这道题描述的不是很详细,它没说最后输出的整数一定要是正的啊。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std; typedef long long ll;ll gcd(ll a,ll b){...原创 2019-02-28 17:38:37 · 451 阅读 · 0 评论 -
l1-6(连续因子)
解题思路:一直以来注重于算法,忽视了C的一些细节。把int改成long long就过了,现在的题目是真的匪夷所思。后来发现是这段话的问题:for(int i=2;i*i<=n;i++).因为i*i返回还是int型,所以,而n又比较大,所以i*i只要稍微超过2^31-1,就特么溢出,变成负数了。然后才导致最后一个数据超时。解决办法有两种1.变成long long,第二种,用for(int i=...原创 2019-02-28 16:21:47 · 229 阅读 · 0 评论 -
l1-2(打印沙漏)
解题思路:题目很简单,但是输出的时候把符号输完之后不能输出空格,导致一直格式错误。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std; int main(){ //freopen("t.txt","r",...原创 2019-02-28 15:35:57 · 155 阅读 · 0 评论 -
L3-2(特殊堆栈)
解题思路:题目不难,就是利用了vector的二分查找特性,来进行插入。但是做题的时候发现一直段错误,最后发现是cnt一不小心定义为char了#include<cstdio>#include<cstring>#include<queue>#include<stack>#include<set>#include<algo...原创 2019-02-28 12:18:00 · 523 阅读 · 0 评论 -
L2-5(集合相似度)
解题思路:无非就是求两个集合的交集。这次发现set_intersection这个函数运行速度比自己手工枚举求交集快了快一倍!!#include<cstdio>#include<cstring>#include<queue>#include<stack>#include<set>#include<algorithm&g...原创 2019-02-28 11:13:13 · 196 阅读 · 0 评论 -
l1-20(帅到没朋友)
解题思路:坑了,输出一定要五位数#include<cstdio>#include<cstring>#include<queue>#include<stack>#include<set>#include<algorithm>using namespace std;int f[1000001],vis[1000...原创 2019-02-27 21:07:21 · 162 阅读 · 1 评论 -
L1-25(当不能使用gets时)
解题思路:gets反正就是读一行直到碰到换行,但不读入。可是PTA上垃圾到不能用gets.所以换了种方法#include<cstdio>#include<cstring>#include<queue>#include<stack>#include <bits/stdc++.h>#include<set>#in...原创 2019-02-27 20:57:50 · 586 阅读 · 0 评论 -
L3-005 垃圾箱分布
解题思路:无非就是一个个垃圾点为起点分别去求最短路。代码从看题到AC花了四十分钟,比赛的时候可能没有那么多时间多#include<cstdio>#include<cstring>#include<set>#include<iterator>#include<algorithm>#include<vector>...原创 2019-02-28 23:45:12 · 146 阅读 · 0 评论 -
L3-007 天梯地图
解题思路:其实就是用两次dijkstra算法分别用于求时间,和求最短路。虽然代码长,但其实写的时间不长。后一个dijkstra复制一下前面,再稍微修改一下即可。#include<cstdio>#include<cstring>#include<set>#include<iterator>#include<algorithm>...原创 2019-03-01 11:37:59 · 360 阅读 · 0 评论 -
L3-009 长城
一开始的想法出现了错误,以为一旦南方的点遇到扫不过去的点,就无法再对后面产生监视作用了。其实做的过程和凸包的做法如出一辙。正确代码#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<set>using namespa...原创 2019-03-30 23:51:24 · 176 阅读 · 0 评论 -
L2-011 玩转二叉树
解题思路:单纯的二叉树构造和遍历。镜像就是构树的时候左右子节点反一下。#include<cstdio>#include<cstring>#include<queue>using namespace std;int pre[50],mid[50];struct node{ int u,l,r;}s[80];int build(int pl,...原创 2019-03-02 12:24:44 · 109 阅读 · 0 评论 -
L2-013红色警报(两种做法)
解题思路:我的第一份代码用并查集加逆边做的,就是先假定已经把要炸的城市都给炸了,然后不断往并查集中加入被炸掉的点。如果并查集的分块数减小超过1个,就代表去掉这条边会影响联通性。第二份是每炸掉一个城市就用dfs看一下连通分量的情况,比第一种费时。并查集:#include<cstdio>#include<cstring>#include<algorithm&...原创 2019-02-26 12:29:35 · 944 阅读 · 0 评论 -
L1-046 整除光棍
解题思路:类似于除法计算。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int k;int main(){ int n,cnt=0; scanf("%d",&n); k=1; while(...原创 2019-03-05 14:04:38 · 135 阅读 · 0 评论 -
L1-032 Left-pad
解题思路:需要注意一下,因为PAT无法使用gets,所以使用getline函数,以前那种一个个读入的方法会有错!!!#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;string s;int main()...原创 2019-03-05 12:37:00 · 103 阅读 · 0 评论 -
L1-043 阅览室
解题思路:题目很简单,但是一开始我没有弄fg,而是直接用s[i]==0,来判断是不是该书已经借出了。但是题目里可能有0:0这个借书时间,导致一直出错#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int s[1...原创 2019-03-05 12:25:08 · 113 阅读 · 0 评论 -
L2-008 最长对称子串
解题思路:练习赛的时候被他的样例带偏了。以为对称字符串只能是奇数形式的,没想到还有偶数这种类型的。第一眼看到题目,还以为要用Manacher算法了,后来发现大小才1000,那怎样的无所谓了#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#incl...原创 2019-03-01 18:54:32 · 88 阅读 · 0 评论 -
L3-020 至多删三个字符
解题思路:我觉得https://blog.csdn.net/sakura_is_the_best/article/details/80156648讲得不错,但是有些细节我还是需要重新说一下。一开始我有一个疑问,像ggggggg这种用前面的不是很难受吗?因为上面博文中用的是abcdefgg来讨论的,只有末尾两个是相同的。其实是这样的,当s[i]==s[i-1]时,我们不管i-1之前是怎么取得,在这基...原创 2019-03-05 00:06:27 · 328 阅读 · 0 评论 -
L3-008 喊山
解题思路:就每来一个山头,就用一次bfs。这道题感觉过于简单了。#include<cstdio>#include<cstring>#include<set>#include<iterator>#include<algorithm>#include<vector>#include<queue>us原创 2019-03-01 11:53:31 · 537 阅读 · 0 评论 -
L2-6(二叉树遍历)
解题思路:第一次写二叉树遍历的代码,还想了一下,发一下代码,以表纪念#include<cstdio>#include<cstring>#include<queue>#include<stack>#include<set>#include<algorithm>using namespace std;struc...原创 2019-02-27 19:16:34 · 162 阅读 · 0 评论