自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

原创 PAT A1057 Stack 二分写法

题目地址这道题考的是优化, 肯定能拿分, 但是拿满分需要一点思考, 《算法笔记》上面用分块的方法来处理, 效率很高, 但是有点复杂, 分块也算是比较冷门的处理手段, 这道题用二分来做也可以, 而且很简单, 用空间换时间。//我知道这道题可以分块思想来写 但是我忘了 并且我想到另外一种方法 二分法 还更简单 不过效率上面来说 比分块差很多#include <cstdio>#include <algorithm>#include <vector>using nam

2020-07-16 21:09:43 212

原创 PAT A1113 Integer Set Partition 最简短代码

题目链接这道题重视的是思路和读题, 如果用numeric里面的accumulate函数, 几行代码就解决了。AC代码如下:#include <cstdio>#include <algorithm>#include <numeric>using namespace std;int seq[100010];int main(){ int n; s...

2020-04-21 03:46:34 214

原创 PAT A1102 Invert a Binary Tree 另外一种思路

题目链接这道题《算法笔记》上面的代码中规中矩, 值得借鉴, 但其实考试的时候不需要写这么复杂, 甚至感觉, 算法笔记上面的思路有点奇葩, 不过作为思维训练的话, 还是很不错的。长话短说 ,对这道题 ,我们完全没有必要把树翻转过来, 只需要在输出的时候反过来输出就行了。 比如说, 以前的中序遍历代码, 我们是按照左孩子——根节点——右孩子 遍历,现在改成右孩子——根节点——左孩子 顺序即可...

2020-04-17 06:07:57 202

原创 PAT A1084 Broken Keyboard 不动脑的代码方案

题目链接这道题手下留情了, 只用 散列 就可以做出来, 基本上没什么坑点.所谓不动脑, 就是说能用库函数解决的 , 就全用库函数解决, 代码越短越好。AC代码如下 , 思路很简单。#include <cstdio>#include <string>#include <iostream>#include <cctype>using na...

2020-04-11 18:58:45 168

原创 PAT A1074 Reversing Linked List 中 sort 函数的另类写法

题目链接这道题算法笔记上面用 sort 来做,不算特别难, 但其实还可以更简单。最近在使用 min_element() 和 max_element() 函数的时候, 发现 sort 排序其实有更简单的另类写法, 并不需要定义 cmp 函数。这道题我的第一次代码如下(按照算法笔记的思路来的):#include <cstdio>#include <algorithm>...

2020-04-04 04:28:23 149

原创 C++中字符串和数字互转

长话短说,有两种方法:1. 直接利用 string 里面的函数:详细介绍:string里面有什么?字符串转换为数字:主要是这几个函数: stoi, stoll, stod 等等,分别将 string 转换为int, long long , double型变量。数字转换为字符串:利用to_string()函数, 很多重载, 非常友好。例子: //字符串转换为数字 cout<...

2020-04-03 04:17:43 1745

原创 PAT A1065 出错分析 和 编译器比较

题目链接这道题非常奇怪 。第一数据范围奇怪, 数据范围是[-263,263], 如果真是这样 long long都满足不了, 右边界 263 已经超过long long 范围了。好在这道题里面好像没有这个数据。第二个奇怪的点是, 在判断溢出的时候, 在g++ 编译器里面不能用 临时变量判断是否溢出。比如不能这么写:if (a<0 && b<0 &&am...

2020-04-01 04:38:43 291 1

原创 PAT A1053 Path of Equal Weight 三种思路

题目链接这道题中规中矩, 但是在结果的输出上面有点小麻烦, 有三种思路。不控制DFS方向, 再DFS结束以后,对所得的结果进行排序, 然后输出,需要用到 vector;在DFS中就控制DFS的方向, 先搜索大的, 这样子在到达叶结点的时候可以直接进行输出, 也可以先保存再输出。和第一个思路类似, 不控制DFS方向, 但是在递归边界处对结果进行排序。需要用到 priority_queue。...

2020-03-26 16:31:06 149

原创 PAT A1051 Pop Sequence 朴素的模拟

题目链接所谓朴素的模拟, 就是说不动脑子的模拟, 题目要干啥 咱就干啥。如下:#include <stack>#include <cstdio>using namespace std;int seq[1010];int main(){ int m,n, k; scanf("%d %d %d", &m, &n, &k); fo...

2020-03-25 19:26:13 152

原创 PAT A1049 Counting Ones string 写法

题目链接我在想这道题能不能用递归来写,递归了半天也没有弄成功,最后还是用原始的方法来写出来了,这道题本质上是一个排列组合题,一个完全的数学问题,如果没有想到好的方法的话,很难拿满分(但是拿一个22分还是很简单的).我在原始方法的基础上改进了一下, 用 string 来写, 降低了难度。如下:#include <cstdio>#include <string>#i...

2020-03-24 17:06:06 116

原创 C# 控件没有按照指定位置显示的解决方法

在用C#写窗体应用的时候,把控件拖动到窗体上面,然后指定了控件的位置和大小,但是在编译之后,会发现控件并没有按照自己所指定的位置来显示,而是显示到了一个非常奇怪的地方,在网上看了一些解决方案,发现不管用, 但是大致找对了思路。把this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;换成this.AutoScaleMode ...

2020-03-23 15:41:31 1321

原创 C#不显示窗体设计的可能原因

换了新电脑一

2020-03-23 15:32:43 5413

原创 Windows10 怎么添加开机启动项

长话短说,如果电脑装了什么卫士, 什么管家之类的东西, 应该用管理启动项的功能,但不知道有没有添加启动项的功能。如果没有这些卫士的话, 我们就要自己动手, 丰衣足食。(其实Windows10这么智能, 还有自己的Defender, 这些额外的杀软真的没啥必要了, 还老弹广告, 占用屏幕空间)如果你想禁用一些开机启动项:1. 按住 ctrl + shift + esc 打开任务管理器, 找到启...

2020-03-23 02:42:03 328

原创 2019冬季PAT甲级 题解和反思

非科班跨考, 本专业课考试也集中在12月份, 没有太多时间来复习PAT, 11月中旬把甲级题库155道粗略地刷完了一遍(在《算法笔记》的帮助下),然后从头开始二刷, 做了十几题以后觉得刷不完了, 加上其他考试的压力, 便搁置刷题计划, 考前一天将题库里面的关于图和树的题目的代码粗略地看了一遍,心想这次12月考试对明年的考研帮助也不大, 就当练手, 结果运气好, 考了满分。这次的题目不难, 会写H...

2019-12-08 01:03:15 1010

原创 PAT B1003 我要通过! 递归训练

题目链接这道题和PAT A1003一样, 都属于排在

2019-11-18 00:48:27 188

原创 PAT A1139 First Contact DFS写法和简单写法

题目链接这道题卡了好长时间, 有必要记录一下。可以用DFS+剪枝来遍历求解, 没到下一层就减去一部分不合理的情况, 不会超时。如下://我的电脑上面用不了#include <bits/stdc++.h>//DFS的剪枝条件一定要全面 DFS全局变量最好是计数 千万不要是索引 不要过度使用//id 一定要用 %04d 这样的形式输出//还有0000 和 -0000 的区别 这...

2019-11-14 01:03:50 356

原创 PAT A1114 Family Property 套路代码 并查集+排序

题目链接我看别人代码觉得思路请求, 我就只会用固定的套路和格式。#include <cstdio>#include <set>#include <vector>#include <algorithm>using namespace std;struct Node{ int id; double number,area; int p...

2019-11-08 14:51:01 127

原创 PAT A1040 Longest Symmetric String 暴力写法和动态规划

题目链接题目数据量很小, 暴力写法完全可以, 思路简单:#include <cstdio>#include <cstring>#include <string>#include <iostream>using namespace std;bool isSymmetric(string a){ int len=a.length(); ...

2019-11-02 23:51:39 137

原创 PAT A1072 Gas Station 一种排序套路写法

题目链接随着刷题的进行, 越来越趋向于用套路来写, 而不是靠思考, 例如本题, 就适合用Dijkstra+sort来写。套路如下:#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int maxV=1100;const int INF=...

2019-11-02 02:35:51 221

原创 PAT A1021 Deepest Root 并查集+set写法

题目链接《算法笔记》上提到这道题用set更方便, 确实如此, 这道题的规则简直就是为set 量身定制的, 如下:#include <cstdio>#include <set>#include <vector>#include <algorithm>using namespace std;const int maxV=100010;ve...

2019-10-31 00:44:46 149

原创 PAT A1094 The Largest Generation 的 DFS 和 BFS 解法

题目链接这道题完全是套路,自己想肯定是想不出来的,按照套路写,想都不要想。DFS套路如下:#include <cstdio>#include <vector>using namespace std;vector<int> child[110];int hashTable[110]={0};void DFS(int index, int level)...

2019-10-23 21:28:09 138

原创 PAT A1051 Pop Sequence 简单思路

题目链接《算法笔记》上的思路也不算难, 但是并不是我写这道题的第一想法,我们其实可以不用从头比较到尾, 只要我们在某一项遇到不符合条件的,就可以直接输出NO了。我的思路如下:以 5 6 4 3 7 2 1为例,我要让栈弹出5,首先我要把1 2 3 4 5装进去,然后比较栈顶和弹出去的这个值是否一致,一致,则弹出去,并且下次往栈装数的时候从6开始装,不一致,直接输出NO,读下一个数据。这里5和5...

2019-10-16 21:15:01 192

原创 DEV C++ 调试查看STL容器的方法 举例

对于简单的程序,DEV C++调试完全够用了,有时候实在找不出问题在哪里,如果不是粗心导致的错误的话,那很有可能就是算法的错误,这时候就要用到断点调试功能,追踪一些变量的值,来看在哪一步程序出问题了,对于普通的变量,直接输入其变量名就可以了,但是对于STL容器,直接输入变量名,不但看不到容器数据,程序直接就不执行了。解决方法如下:不能输入容器名查看,只能通过输入q.front(), q.size...

2019-10-14 01:07:30 3925 1

原创 PAT A1022 Digital Library 简短实现和出错分析

题目链接这道题如果不看测试用例的话,可能思路就不明确,但是一看到他给的测试用例,会不自觉地想到map<string , vector< int > >,并且考虑到输出要按升序来, 所以vector可以被set< int >代替。代码如下:#include <cstdio>#include <iostream>#include &l...

2019-10-08 15:29:26 281 1

原创 PAT A1071 Speech Patterns 简单思路

题目链接这题不算太难,我的整体思路和书上差不多,但是实现方法不一样,我是读一个字符,就处理一次,遇到不符合条件的,直接跳过,符合条件的,就计数。书上的代码如下:#include <cstdio>#include <string>#include <iostream>#include <map>using namespace std;b...

2019-10-07 16:07:13 140

原创 PAT A1054 The Dominant Color 简单写法(开散列)

题目链接这题用hashTable来写无疑是最简单的,但是为了训练map的套路,《算法笔记》上面饶了弯路, 用map来写,也不算很难。但是这种int对int的映射,在数据并不大的情况下(本题最高到224左右),考试的时候直接开散列,比用map不知道要好到哪去了。书上的参考代码:#include <cstdio>#include <map>using namespac...

2019-10-07 14:15:58 141

原创 [Warning] left shift count >= width of type 解决方法

在用dev C++写写题目的时候出现这个警告,很困惑。源代码如下:#include <cstdio>int hash[1<<24+10]={0};int main(){ int m,n; scanf("%d %d",&m,&n); int strict=m*n/2; for (int i=0; i<n; i++){ for (int...

2019-10-07 13:50:33 16572 1

原创 PAT A1039 Course List for Student 简单写法和 unordered_map 用法

题目链接这道题如果用 map<string, vector< int> >,对最后一个数据,十有八九会超时,但是如果用unordered_map<string, vector< int > >的话,最后一个数据在大多数情况下,能通过(不过也是在危险边缘了,时间限制是600ms, 用 unordered_map的话,大概在350-550 ms 之间)...

2019-10-05 17:24:09 160

原创 PAT A1060 Are They Equal简单思路

题目链接这道题想做满分其实是有点难度的,不过得个20分不算太难,《算法笔记》上的思路挺清楚的,如下:#include <iostream>#include <string>using namespace std;int n;string deal(string s, int &e){ int k=0; while (s.length()>0 ...

2019-10-05 02:06:55 163

原创 PAT A1024 Palindromic Number 套路写法

题目链接因为我知道这道题出现在《算法笔记》上面大整数那一节,所以就会自然而然地想用大整数的套路,只是代码可能有点长,但是都是套路,所以在思维上不难,套路如下:#include <cstdio>#include <cstring>struct bign{ int d[1010]; int len; bign(){ memset(d,0,sizeof(d));...

2019-10-03 16:18:15 166

原创 PAT A1023 Have Fun With Numbers 简单写法

题目链接套路和简单思路总是会冲突,这道题明显可以用大整数乘法的套路来写,但是有点小题大做,因为只是将一个位数在20以内的数字乘上一个2而已。不复杂。用大整数乘法的套路,需要有很多前戏,如下:#include <cstdio>#include <cstring>struct bign{ int d[1000]; int len; bign(){ memse...

2019-10-03 15:39:04 189

原创 TMS320F28335 和 VS1003B 之间的通信

小白正在学习dsp,想用tms320f28335这款芯片来做一个mp3播放器,先用普中的一个f28335开发板做实验,历经了一些磨难终于做出来了简单的mp3播放器,回头总结,考虑到f28335和tf卡之间通信用的是硬件的spi模块,那么f28335和解码芯片vs1003b之间就需要用软件来模拟时序,网上有51和vs1003b之间通信的代码,在此基础上,我稍微做了修改,加了很多注释,变成f28335...

2019-10-03 00:50:27 471

原创 PAT A1096 Consecutive Factors 一种思路

题目链接这道题思路理清楚之后就不是很难了,如下:#include <cstdio>#include <cmath>int isPrime (int n){ if (n<=1) return 0; int sqr=sqrt(n); for (int i=2; i<=sqr; i++){ if (n%i==0) return 0; } retu...

2019-10-03 00:28:21 111

原创 PAT A1104 Sum of Number Segments 错误分析

题目链接这题代码很简单,如下:#include <cstdio>int main(){ int n; scanf("%d",&n); double sum; for (int i=0; i<n; i++){ double temp; scanf("%lf",&temp); sum+=temp*(n-i)*(i+1)...

2019-09-28 23:46:02 150

原创 PAT A1093 Count PAT's 两种写法

题目链接《算法笔记》上面的思路很巧妙,一开始并没有想到,用了另外一种思路,稍微复杂点,但是时间性能和空间性能都比书上的参考代码好一点。书上的参考代码:#include <cstdio>#include <cstring>int leftNumberP[100010]={0};int rightNumberT[100010]={0};char str[10001...

2019-09-26 18:27:28 133

原创 PAT A1048 Find Coins 散列,二分,双指针 解法汇总

题目链接这道题值得好好研究,方法很多,个人感觉散列的方法最好。三种方法汇总:散列:#include <cstdio>int hashTable[1010]={0};int main(){ int n, m; int value[100010]; scanf("%d %d",&n, &m); for (int i=0; i<n; i++){ ...

2019-09-26 17:43:21 149

原创 PAT A1029 Median 简单写法

题目链接《算法笔记》上面的方法,优点是平均耗时比较快一点点, 但不够简单。书上的参考代码如下:#include <cstdio>const int maxn=1000010;const int INF=(1<<31)-1;int s1[maxn],s2[maxn];int main(){ int n,m; scanf("%d",&n); for (...

2019-09-26 17:09:23 130

原创 PAT A1037 Magic Coupon 简单思路 双指针

题目链接《算法笔记》上面的思路已经很简单了,但其实可以更无脑, 主要看每个人的敏感点在哪。我的代码如下:#include <cstdio>#include <algorithm>using namespace std;bool cmp(int a, int b){ if (a>=0 && b>=0) return a>b; e...

2019-09-16 23:32:45 127

原创 PAT A1033 To Fill or Not to Fill 常规思路和实现

题目链接《算法笔记》上面的思路非常实用,但实现过程不够直观,书上的参考代码如下:#include <cstdio>#include <algorithm>using namespace std;const int maxn=510;const int INF=100000;struct Station{ double price, dis;}st[maxn...

2019-09-13 02:40:57 254

原创 PAT B1043 输出PATest 简单思路

题目链接《算法笔记》上面的思路很常规,但是一开始没想到这么写,用了一种更粗暴简单的思路,如下:#include <cstdio>#include <cstring>#include <iostream>using namespace std;int main(){ char str[10010], pat[]="PATest"; cin.getl...

2019-09-11 23:06:42 146

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除