自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android使用okhttp爬取网站。只简单爬取html代码

首先界面如下:mainactivity中的安卓代码:package com.example.project3;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.webkit.WebView;import android.widget.Button;import a

2020-12-15 12:30:25 901

原创 Android中如何在textView实现富文本

怎么在textView中实现类似这样的文本??要求可以点击跳转。代码如下:xml中:<TextView android:id="@+id/tv_two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoLink="all"//关键是这一句,其他的不重要 android:text

2020-12-03 14:25:43 1287

原创 AlarmManager(闹钟服务)

核心代码:public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private ListView mListView; //需要防止的游客名单(数据) private String[] names={"9:30","10:00"}; private int minute; private AlarmManager alarmManager;

2020-11-06 15:40:23 211

原创 mListView.setOnItemClickListener的函数失效的处理办法。

这是做只用listview 的组件的时候。遇到的问题:mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, Vi

2020-11-05 23:55:34 373

原创 如何判断一棵树是不是完全二叉树? pat1110题思路

算法思路:1.将每个点的值存入固定的数组下标(指的是x的左孩子对对应2x,右孩子对应于2x+1),对应的数组变量(相当于座位)中。2.看最后一个节点的座位编号是不是等于n(n是总的节点个数),如果是,则是完全二叉树,否则不是。...

2020-08-09 22:50:15 177

原创 令人匪夷所思的bug,容易忽视

bool型数据,while(has_father[root]==true) 与while(has_father[root]) 在while循环中居然不一样!!这是为什么呢???忽视了这一点,使用后者导致没能找出来值为false的点。

2020-08-09 17:53:34 109

原创 如何用数组模拟树

如何使用数组模拟树?代码示例如下:const int N=10010,M=N*2;int n;int p[N];int h[N],e[M],ne[M],idx;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=idx++;}注:因为树是无向图,所以可以把每一条边当成2个有向边存储。这样就是上面第三行为什么M是N的2倍的原因。那么当树以无向图的方式存储(也就是每一条边当成2条有向边存储时),如何使用dfs()遍历每个节点而不重复

2020-07-26 18:23:00 727

原创 如何使用DFS()遍历树的每个节点而不重复呢?(pat1021题解)

当树以无向图的方式,数组模拟的方式 存储(也就是每一条边当成2条有向边存储时),如何使用dfs()遍历每个节点而不重复呢?示例的代码如下:int dfs(int u,int father )//father用于防止重复搜索的dfs,使得每个叶子节点只可以搜索一次{ int depth=0; for(int i=h[u];i!=-1;i=ne[i]) { int j=e[i] ; if (j==father) continue;//过滤掉父节点,让

2020-07-26 18:22:03 728

原创 程序不能AC的常见原因

程序不能AC的常见原因时间超限:传参数到被调用函数的时候没有引用导致每次都要复制,占用太多的时间。解决办法:加上引用符号&。例如下面的结构体函数的情况:#include <algorithm>#include <unordered_map>#include <stdio.h>#include <vector>#include <iostream>using namespace std;struct Node{

2020-07-18 17:24:47 863

原创 pat1012题解

通过的代码:#include <iostream>#include <algorithm>#include <stdio.h>#include <vector>#include <unordered_map>#include <cmath>using namespace std;unordered_map <string, vector<int>> grades;vector <int

2020-07-18 09:39:14 105

原创 如何输入一行未知空格个数的字符串,并将其保存

如何输入一行未知空格个数的字符串,并将其保存?如pat1100题 每一行可能是数字,可能是多位数的火星文,可能是一位数的火星文解决办法:首先使用getline函数输入一整行:getline(cin, line);然后使用stringstream流来对这个读入的line进行操作。记得加上头文件#include <sstream> string line; getline(cin, line);//能输入有空格的一行字符串 cout<&lt

2020-07-16 21:42:38 844 1

原创 c语言中各个数据类型的存储大小和数据范围

真的太重要的了。解释:1、编译系统给int型数据分配的内存可能是2个字节或是4个字节,具体由编译系统自行决定。例如:Turbo C 2.0分配的是2个字节,而Visual C++则分配4个字节。​ 2、在编程考虑数据规模时,如果记不清楚具体数值范围,可根据十进制位数来决定使用什么类型。例如:当需要存储一个大小为100 000 000 0的数时,可以选择大于等于10位十进制数范围的类型,如long、long long 等。...

2020-07-16 16:24:54 2798

原创 rbegin()函数与rend()函数。

rbegin()函数与rend()函数。在使用C++的STL时,经常会用到迭代器,那么不得不搞清楚里面的一些指针 begin(), end(), rbegin(), rend()之间的区别与联系,以及它们分别都指向哪个元素。首先要明白的一点是它们都是指针,其中begin()指向第一个元素,我们容易误认为end()是指向最后一个元素,其实不是的,end()是指向最后一个元素的下一个。这就是为什么我们在使用map或是unordered_map来查找某个值时都要和end()比较呢,因为如果等于end()了,则说

2020-07-16 10:31:16 7463 2

原创 sprintf函数的用法

sprintf函数的用法举例:

2020-07-15 17:57:46 78

原创 关于堆的知识。priority_queue

关于堆的知识。priority_queue:priority_queue是优先队列,底层是堆来实现的。定义好优先队列内元素的优先级是运用好优先队列的关键。见算法笔记的224页。他的内部的元素排序见另外一篇博文。sort中的cmp函数与优先队列priority_queue的重载函数的区别...

2020-07-15 16:59:03 72

原创 sort中的cmp函数与优先队列priority_queue的重载函数重载小于号)的区别:(非常易忘,易错)

sort中的cmp函数与优先队列priority_queue的重载函数的区别:在优先队列中的写法:(他有好几种写法,这是其一,还有的写法很像单独的cmp函数,可以见算法笔记的226面)struct fruit{ string name; int price ; friend bool operator < (fruit a,fruit b) { return a.price>b.price;//低价优先。这与cmp是恰好相反的!!

2020-07-15 16:57:55 1115 4

原创 关于结构体中重载小于号< (用于sort()排序) 或者大于号> (这是用于堆排序)

关于结构体中重载小于号< (用于sort()排序)使用的示例:(来自pat1026题,乒乓球的题)struct Person{ int arrive_time,play_time; int start_time,waiting_time; bool operator< (const Person& t) const//sort排序 { if(start_time!= t.start_time) return start_ti

2020-07-15 16:18:39 3295

原创 pat1097,选出链表中重复的值

思路:使用静态链表,多一个order的属性,来记录他应该所在的位置。然后按照order来排序。但是:还有一个样例没有通过!!!#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=100010;struct node{ int address,data,next; int order;}Node[maxn];b

2020-07-13 09:55:22 103

原创 pat甲级1074(反转链表)

分类分析即可。仔细分析不难得出结论。自己写的ac的代码:#include <cstdio>#include <algorithm>using namespace std;const int maxn=1000010;struct Node{ int address,next,data; int flag;//是否有效}node[maxn];bool cmp(Node a,Node b) { return a.flag<b.

2020-07-08 21:07:04 180

原创 获取url请求中的汉字的办法。

获取url请求中的汉字的办法。 String url = request.getRequestURI(); URLEncoder.encode( url, "UTF-8" ); String result = java.net.URLDecoder.decode(url,"UTF-8"); System.out.println("url为"+url ); System.out.println("url汉字:"+result );结果

2020-06-08 17:29:23 838

原创 pat1060题

算法思路:只需要仔细分析各种情况,分好类别即可。#include <iostream>#include <vector>#include <math.h>#include <cstdio>#include <algorithm>#include <string>using namespace std;int n;string fun(string s,int &k){ string ans;

2020-05-28 17:26:28 73

原创 pat1091题(少了5分,两个测试集没有过)

还有两个测试集没有通过啊!!!#include <iostream>#include <vector>#include <cstdio>#include <queue>using namespace std;int m,n,l,t;int pixel[1290][130][60];bool have[1290][130][60]={false};struct node{ int x,y,z;}Node;bool judge(int

2020-05-10 21:58:09 456

原创 pat1103的代码

未能全部通过,分数是29分。少一分。代码如下,解法思路见书上。#include <iostream>#include <vector>#include <cstdio>using namespace std;int n,k,p;vector<int> fac,temp,ans;int pow(int a){ int x=1; for(int i=0;i<p;i++) { x=x*a; }

2020-05-10 12:12:39 81

原创 pat甲级1051题(栈常见使用)(多多做这个题)

算法:我的错误:我设法让这个array数组去等待捕获顺序数组的值。这样反而思维量更加大。不容易实现。正确的做法:将1~n依次入栈,如果这次入栈的元素恰好等于array数组需要的值,才出栈。#include <iostream>#include <cstdio>#include <stack>using namespace std;stack&lt...

2020-05-04 10:16:51 124

原创 c++需要注意的点

需要有这个#include <cstdio>才可以使用scanf();

2020-05-03 20:49:30 108

原创 pat甲级1098题。堆的应用。判断排序方法采用的是不是堆排序。

算法思路:1 三个数组,分别存放原始数据,最终修改后的数据,以及从最初到最终的不断变化的数据。2.对这个temp数组,一次次判断通过插入排序后的状态是不是等于了最终数组。如果等于了,说明这就是使用的插入排序。3.否则就是使用的排序。对其一次次的调整,观察其是否等于了最终数组。到一定时候停下来,做完下一步调整之后,输出。#include <iostream>#include &...

2020-05-02 20:35:04 257

原创 html中加入音频

代码如下<div style="left: 10px;top: 700px"> <object height="100" width="1000" data="music/录音.m4a"></object></div>

2020-04-25 11:37:51 395

原创 pat甲级1066题(没写出来,本来代码还可以通过一部分的,现在一个也过不了了)

下次有时间了再去找里面的bug吧#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h>#include <math.h>#include <queue>#include <vector>#include &...

2020-04-16 15:27:10 118

原创 pat甲级1099题。(给出一棵树的框架和一个数组,建立一棵二叉查找树,最后输出他的层序遍历)

算法思想:先建立只知道下标的树。静态的。将这个数组从大到小排序。然后对于这棵树,采用中序遍历的办法,去从头到尾抓取这个数组的值。代码如下:#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h>#include <math.h&gt...

2020-04-16 10:26:08 94

原创 pat甲级1064。这个题目出的好。非常巧妙的解法。(通过输入的数组,构建一棵完全二叉查找树)

题目关键是:通过输入的数组,构建一棵完全二叉查找树。算法:(要注意数据大小非常重要,初始化的时候tree[1000]都会不能全部通过,改成tree[1010]才给我过的)将输入的数组从小到大排序好,放入number数组;弄一个tree[ ]数组,对此数组进行中序遍历。每次遍历就将number数组中的值一次抓一个的放入进这个tree数组中即可。比较巧妙,要多多体会#include ...

2020-04-15 15:43:29 189

原创 pat甲级1043题。(求输入的多个数是否是二叉查找树的某种遍历方法。重要)

题目给出一组数据,要我们判断这组数是不是一个二叉查找树的某种遍历。解题办法:用组数,去建一棵二叉查找树,然后再用一个vector来存储这个数的XX遍历。判断原始数组等于不等于这个vector即可。数据结构:vector。树代码如下:#include <iostream>#include <algorithm>#include <cstdio&...

2020-04-15 14:17:31 87

原创 pat甲级1053,路径问题,背包问题,深度优先搜索

数据结构静态树。树中有权值以及vector型的孩子。vector来放孩子。hashpath数组。用来放置路径算法使用DFS(),来遍历这棵树。如果参数中的sum,等于题目要求的weight值,同时该节点没有孩子了,就一次输出。#include <iostream>#include <algorithm>#include <cstdio>...

2020-04-14 11:49:12 125

原创 pat甲级1004题。树中计算每个层的叶子节点数。

DFS深度遍历即可。比较简单。代码:#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h>#include <math.h>#include <queue>#include <stack>#include...

2020-04-13 21:23:23 126

原创 pat甲级1106题解以及教训

那个minn值必须很大才可以通过。我写成10000都不能通过。这是经常忽略的错误。题解:参考1094。

2020-04-13 18:58:12 147

原创 pat甲级,1094(知道孩子编号还原一棵树;找出树中那一层结点最多)

解题关键:用vector还原一棵树。用到的数据结构:哈希表,用来记录每一层对于多少个结点。vector数组算法DFS深度遍历,每到一层,使用哈希表,来使得当层对应的哈希值加一。#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h&g...

2020-04-12 22:06:12 276

原创 PAT甲级1090(树,给出每个节点的父亲,来还原一棵树;求树的最大深度)

解题关键:给出每个节点的父亲,来还原一棵树;求树的最大深度数据结构1 vector用来存放每个父亲节点下面的孩子,孩子个数可以增加。vector<int> node[100000];算法1 递归。反复的对节点进行DFS遍历。携带参数level和节点的下标。2.在main函数的输入中,输入父亲节点下标,然后设置这个节点的孩子的下标为 i 。这个i 是每输入一次就加一...

2020-04-12 21:21:53 523

原创 pat A 1002

我的代码#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h>#include <math.h>#include <queue>#include <stack>#include <cstring&g...

2020-04-11 17:20:43 91

原创 对于c++中的连续输入多个字符char,并且中间需要换行/n。比如pat甲级1102题

正确读入的办法for(int i=0;i<num;i++){ char a,b; scanf("%*c%c %c",&a,&b); } printf("%d",a);如果下面这样写的话,将只能读入两个/n之后就会莫名其妙的输出一个数值for(int i=0;i<num;i++){ char a,b;...

2020-04-11 16:13:52 757

原创 pat A 1086

我是这么写的,奈何实在不能通过???!!!!找了一个上午没找出来!先放过!下面是未通过的,我写的。`#include <iostream>#include <algorithm>#include <cstdio>#include <stdio.h>#include <math.h>#include <queue>...

2020-04-11 12:36:31 94

原创 PAT A1118做题分析

我出错的地方:试图把树给并起来。这里鸟有编号,正确做法应该是把鸟并起来。而不是树。思路分析用并查集的办法。cnt[i]数组保存以i为FindFather结点的集合里面的鸟的个数,exist[i]表示鸟的id——i在输入的鸟的序号里面是否出现过,遍历cnt数组并累加所有不为0的个数即可得知有多少棵树,累加所有出现过的鸟的id的cnt的值即可得知鸟的个数代码如下: for(i...

2020-04-10 11:14:25 193

空空如也

空空如也

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

TA关注的人

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