- 博客(63)
- 资源 (1)
- 收藏
- 关注
原创 【PAT】B1025 反转链表
给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为 1→2→3→4→5→6,K为 3,则输出应该为 3→2→1→6→5→4;如果K为 4,则输出应该为 4→3→2→1→5→6,即最后不到K个元素不反转。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数N(≤105)、以及...
2020-03-12 23:22:45
327
原创 【PAT】B1030 完美数列
给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M≤mp,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出N个正整数,每个数不超过109。输出格式:...
2020-03-07 20:00:06
259
原创 【PAT】B1019 数字黑洞
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 - 12...
2020-03-04 20:41:34
411
1
原创 VS Code中使用Code Runner运行Python代码时中文乱码问题解决
在配置文件 setting.json 中加入如下代码即可"code-runner.executorMap": { "python": "set PYTHONIOENCODING=utf8 && python -u",}
2020-02-19 13:31:57
1063
1
原创 win10下安装Anaconda3后cmd中运行“conda”命令显示“‘conda’不是内部或外部命令,也不是可运行的程序”的解决方法
找到安装目录 \Anaconda3,例如我的是 C:\Users\zuoyu\Anaconda3; 将 \Anaconda3、\Anaconda3\Scripts、\Anaconda3\Library\bin 三个目录添加到系统环境变量 Path 中即可
2020-02-19 11:15:10
4781
原创 Numpy 的基本操作
import numpy as np#查看Numpy版本信息np.__version__###创建数组#通过列表创建一维数组np.array([1, 2, 3])#通过列表创建二维数组np.array([(1, 2, 3), (4, 5, 6)])#array([[1, 2, 3],# [4, 5, 6]])#创建元素全为 0 的二维数组np.zero...
2020-01-21 21:40:02
242
原创 写在2019年ACM-ICPC亚洲区域赛宁夏站之后——一只菜鸡的ACM生涯
一只菜鸡ACM生涯总结一晃时间就过去了,接触ACM也将近一年半的时间。在这段时间里,有过找不出来bug的难受体验,也有过茅塞顿开的兴奋激动;有过熬夜打CF的哈欠连天,也有过每天做真题的斗志昂扬。在这段时间里,认识了很多优秀的同学,见识了很多不一样的人生。从2018到2019年,我作为一个弱校的普通ACM队员,一共参加过四场ICPC比赛(两场全国邀请赛,两场亚洲区域赛)。发自心底地,我首先感激我...
2019-10-24 17:42:49
877
3
原创 Gym 102028D Keiichi Tsuchiya the Drift King(2018 ICPC 焦作站 D 题) 计算几何
去年暑假集训了两个月就去了焦作,这个题一直卡着到最后也没做出来,很遗憾的在人生中第一场 ICPC 比赛打了铁。当时也没有补题的习惯,这个题知道了大致做法后就放过了。今年准备银川赛区,翻出了往年的比赛真题做一下,又碰到了这道题,虽然很水,但还是想写个博客纪念一下,毕竟银川可能是参加的最后一场 ICPC 比赛了,希望不会留下遗憾!!!题目链接D. Keiichi Tsuchiya the ...
2019-10-16 00:34:00
490
原创 C++ 输入输出外挂
适用于普通正负 int 输入输出int Scan() { //输入 int res = 0, flag = 0; char ch; if((ch = getchar()) == '-') flag = 1; else if(ch >= '0' && ch <= '9') res = ch - '0'; while((c...
2019-10-04 11:31:33
719
原创 Codeforces 1234D Distinct Characters Queries set、lower_bound的妙用
D. Distinct Characters Queriestime limit per test: 2 secondsmemory limit per test: 256 megabytesYou are given a stringssconsisting of lowercase Latin letters andqqqueries for this string.R...
2019-10-02 17:04:01
414
原创 HDU2492 Ping pong 树状数组的妙用
Ping pongTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6547Accepted Submission(s): 2427Problem DescriptionN(3<=N<=20000) ping...
2019-09-27 21:03:01
254
1
原创 HDU5538 House Building (2015 ACM/ICPC 亚洲区长春站 L 题) 计算表面积
House BuildingTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 3258Accepted Submission(s): 1974Problem DescriptionHave you ever pl...
2019-09-26 21:42:56
230
1
原创 UVA11997 K Smallest Sums 优先队列
题意有 k 个整数数组,各包含 k 个元素,在每个数组中取一个元素加起来,可以得到个和。求这些和中最小的 k 个值(允许重复)。分析这个问题可以化简成两个长度为 k 的有序表各取一个元素求前 k 个最小的。拿二元组(s, b)来表示一个元素,,这样访问下一个元素时,访问的是代码#include <cstdio>#include <iostrea...
2019-09-24 18:28:35
155
1
原创 Codeforces 1230C Anadi and Domino 枚举
C. Anadi and Dominotime limit per test: 2 secondsmemory limit per test: 256 megabytesinput: standard inputoutput: standard outputAnadi has a set of dominoes. Every domino has two parts, and ...
2019-09-24 14:10:38
1232
5
原创 MacOS 下 VScode 编译运行 C/C++ (ACM向)简单粗暴
VSCode 的下载、安装在VSCode 官网点击 Download for Mac 开始下载,之后双击下载完成的文件等待一会就安装好了。必备插件安装VSCode 启动后,点击左侧最下的方块形按钮(或者按 command + shift + x)打开插件控制器,安装三个插件:C/C++ C/C++ Clang Command Adapter Code Runner如图所示...
2019-09-10 11:08:34
4407
5
原创 Trie 字典树
比如我把 abc、abcd、b、bcd、efg、hig 这些插入到字典树中,就形成了如图所示的树状结构链表实现:#include<cstdio>#include<cstdlib>using namespace std;char s[11];struct Trie{ Trie* next[26]; //结构体指针 有26种字符...
2019-08-21 01:11:14
143
2
原创 简明扼要AC自动机
产生全称Aho-Corasick automaton,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法。用途字符串的匹配问题 多串的匹配问题例如给几个单词 acbs,asf,dsef,再给出一个很长的文章,acbsdfgeasf,问在这个文章中,总共出现了多少个单词,或者是单词出现的总次数。实现原理KMP + Trie树(字典树)KMP,没有了解过的...
2019-08-21 00:59:16
193
2
原创 并查集
int pre[maxn];int Find(int a){ int root = a; while(root != pre[root]){ root = pre[root]; } while(a != pre[a]){ int tmp = pre[a]; pre[a] = root; a = t...
2019-08-09 08:30:05
153
1
原创 2019.7.30 素数筛、矩阵快速幂 题解
A: 素数查询(Easy)一个欧拉筛然后查询完事#include <iostream>#include <cstring>using namespace std;const int MAXN = 2e5 + 7;int isprime[MAXN]; //保存素数int vis[MAXN]; //初始化void eulerSieve(){ ...
2019-07-30 23:14:42
329
2
原创 简明扼要筛法求素数
埃拉特斯特尼筛法(埃氏筛)原理:当一个数是素数的时候,那么他的倍数肯定是合数。时间复杂度为 O(nloglogn)。int isprime[MAXN];int vis[MAXN];void Prime(int n){ int cnt = 0; memset(vis, 0, sizeof(vis)); //vis里0是素数,1是合数 vis[0] = 1...
2019-07-29 18:34:52
258
原创 快速乘、快速幂和矩阵快速幂
O(1) 快速乘首先看看最基本的乘法:#include <iostream>using namespace std;int main(){ int a, b; cin >> a >> b; cout << a * b << endl; return 0;}如果题目需要求出的 a *b...
2019-07-27 15:46:30
339
原创 简明扼要 KMP 算法
朴素字符串匹配首先我们看看最普通的字符串匹配方法可以看出朴素算法的匹配思想是用两个指针分别指向目标串和模式串,一旦发生了不匹配的情况,两个指针都回退,然后从目标串的新位置重新开始匹配,复杂度为 O(mn),对于数据量比较大的字符串匹配情况来说必定超时。于是引出了我们下面的 KMP 算法。KMPKMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快...
2019-07-25 09:47:29
346
2
原创 简明扼要树状数组
时间复杂度:O(nlogn)作用:解决维护动态数组前缀和问题可以发现如下规律:1=(001) C[1] = A[1];2=(010) C[2] = A[1] + A[2] = C[1] + A[2];3=(011) C[3] = A[3];4=(100) C[4] = A[1] + A[2] + A[3] + A[4] =...
2019-07-23 16:40:57
478
原创 string 模拟大数加减乘除
1、相加#include <cstdio>#include <iostream>using namespace std;string add(string s1, string s2) { //s1更长 if(s1.length() < s2.length()) { string temp = s1; s1 = ...
2019-07-18 18:56:40
411
原创 2019.7.16 递归 题解
A: 递归计算累加和前三题均为简单递归,找到递归终止条件即可#include <cstdio>using namespace std;int f(int n){ if (n == 1) { return n; } return n + f(n - 1);}int main(){ int n; scanf("...
2019-07-16 21:58:45
350
原创 2019年ACM-ICPC全国邀请赛(西安) 赛后总结
写在前面是第二次参加 ACM 比赛了,上一次是在河南焦作的河南理工大学参加 2018 年的亚洲区预赛,很遗憾打了铁,都怪自己和队友们经(tai)验(cai)不(le)足。这一次有位特别强的大佬带,感觉紧张的情绪减少很多。5.18早上十点钟,我们学校一共六支队,浩浩荡荡地出发。到达后走流程签了到,拍了照,荧光橙色的衣服是真的亮骚,不过没有发心心念念的书包唉,今年必须搞一个(小声逼逼)。热身赛随...
2019-05-20 17:17:07
1434
1
原创 程序设计竞赛OJ平台代码提交中G++编译和C++编译的区别及注意事项
G++和C++编译的区别G++输出double类型时,scanf用%lf,printf用%fdouble a = 0.0;scanf("%lf", &a);printf("%f\n", a);对于64位整数,申请时用_int64,scanf用%I64d,pirntf用%I64d_int64 b = 2e50;scanf("%I64d", &b);printf("...
2019-05-07 21:50:52
338
1
原创 快速排序求第 K 大的数或第 K 小的数
众所周知,快速排序可以通过每一趟排序将指定元素放在它应该在的位置,也就是它左边的元素都比他小,右边的元素都比他大。根据这个原理,利用快速排序求第 K 大的数或者第 K 小的数就很方便了。在实现的时候,并不需要完整地实现快排的所有过程。假如我们要找的是第 K 大的数,而一趟快排后 a[low] 这个元素被放在了指定位置,那就只需要看 K 和 low 的大小关系来决定递归 low 的左边部分还是右边部...
2019-03-16 09:31:17
1687
8
原创 HDU1051 田忌赛马 贪心
题目链接:https://cn.vjudge.net/problem/HDU-1052题意: 就是很简单的田忌赛马的故事,田忌赢一场得200块,输一场-200块,平局不奖不罚。问给定双方马的速度,田忌最理想的收益是多少。分析: 利用贪心的思想,总的原则就是这样:尽量赢和自己处在当前同一排名下的马,若赢不了,就拿自己最慢的马去当炮灰打掉对方最快的,尽量不平...
2019-03-05 20:12:42
283
原创 SUST Weekly Final Round One 参考题解
A: 阿离分伞 ——任浦嘉签到题。这道题可以用线性筛的方法先将10000以内的素数打表出来,然后直接查找看每次分解的两个数是不是素数#include <cstdio>#include <cstring>using namespace std; int prime[10005]; //打表void isprime(){ ...
2019-03-02 22:53:05
282
原创 POJ2833 The Average 优先队列
题目链接:https://cn.vjudge.net/problem/POJ-2833题意: 在一组打分中,去掉 n1 个最高分,去掉 n2 个最低分,然后用剩下的分数计算选手得分。分析: 这道题看起来可以直接把所有的分数存起来,排序一下之后把中间的加起来求平均,但实际上这道题因为数据量太大,这样做就超时了。看题目我们发现 n1 和 n2 两个数据都不超...
2019-02-27 20:46:07
240
原创 STL 中 set、map、queue 的简单使用方法
set 内部为二叉搜索树#include <set>#include <cstdio>using namespace std;int main(){ //声明 set<int> s; //插入元素 s.insert(1); s.find(2); s.erase(3); //查找元素方法1...
2019-02-19 19:41:28
529
原创 POJ 2431 Expedition 优先队列
题目链接:https://cn.vjudge.net/problem/POJ-2431题意: 一辆卡车在长为 L 的一条路上行驶,,每走 1 步耗费 1 单位油,,初始油量为 P ,路上共 N 个加油站,给出每座加油站的油量和距离终点的距离,假设油箱无限大,,求得到达终点时的最少加油次数,,无法到达则输出 -1。分析: 我们可以想象成,在到达加油站 i ...
2019-02-18 21:39:59
179
原创 POJ3617 Best Cow Line 字典序最小问题 贪心
题目链接:https://cn.vjudge.net/problem/POJ-3617题意: 给定一个字符串 ,利用这个字符串通过不断进行以下任意两种操作,从而构造出一个字典序尽可能小的新字符串。从初始字符串的头部拿走一个字符添加到新字符串的尾部; 从初始字符串的尾部拿走一个字符添加到新字符串的尾部;分析: 字典序是指从前到后比较两个字符串大小的方法...
2019-02-13 22:04:44
869
2
原创 BFS算法求迷宫的最短路径
BFS(Breadth-First Search)算法的具体实现就是:通过不断取得某个状态能够达到的所有状态并将其加入队列尾, 并且由于队列本身的特性先加入队列的状态总是先得到处理,这样就可以总是先将需要转移次数更少的状态进行处理。换句话说就是总是取得了这个状态的树中更接近根部的节点,又或者是总是让搜索树的广度得到尽可能增加。拿一个例子来说,有一个如图所示的迷宫,'#' 为墙壁,'...
2019-02-12 21:01:47
4620
1
原创 POJ2386 Lake Counting DFS求连通块数量
题目链接:https://cn.vjudge.net/problem/POJ-2386题意: 八连通的积水被认为是连在一起的,求出院子里有多少水洼。分析: 采用深度优先搜索(DFS,Depth-First Search),从任意的w开始,不断把邻接的部分用'.'代替,1次DFS后与初始这个w连接的所有w就全都被替换成'.',因此直到图中不再存在W为止,总...
2019-02-12 10:58:56
259
原创 六种常见排序(冒泡、选择、插入、希尔、归并、快排)代码存档
#include <iostream>using namespace std;//冒泡排序void BubbleSort(int a[], int len){ for(int i = 0; i < len; i++){ for(int j = i; j < len; j++){ if(a[i] > a[j]){...
2019-02-04 08:38:56
221
原创 无网络连接时 VScode、Atom 等 Electron 应用无法启动的问题
今天是平凡的一天,本来打算像日常一样起床后打开电脑,把 VSCode 和 Chrome 挂在桌面上然后看 Bilibili 划一整天水,结果早上起床发现家里停电了。那也问题不大,我熟练地点击 VScode,点击 VScode,点击 VScode......我佛了 点不开是什么鬼,那也问题不大,我熟练地点击 Atom(这是一个神奇的软件,每每我会因为他缓慢的启动速度和时有时无的卡顿将它卸载,毕竟替...
2019-02-03 10:07:44
1461
原创 HDU3743 Frosh Week 归并排序求逆序对的数量
题目链接:https://cn.vjudge.net/problem/HDU-3743 题意: 给出一组 n 个数,每次交换相邻的两个整数,要你用最少的交换次数使得该排列呈递增排列。输出需要交换的次数。分析: 这道题和 POJ 2299 Ultra-QuickSort 一模一样,都可以采用归并排序的方法,在排序中计数即可。归并排序的具体实现可以点击这里查...
2019-01-29 10:23:54
257
原创 归并排序(分治思想 自顶向下)
原理:归并排序是分治法的一个典型的应用。先使每个子序列有序,再将两个有序子序列合并成一个有序表。如图所示就是归并排序的基本步骤。首先利用函数递归,将原数组不断分割直至变成不可分割的,只含一个元素的子序列,此时每个子序列都能被看成是有序的子序列。然后进行合并,每一轮合并将逆着拆分的过程逐渐在原数组中形成有序。复杂度:平均、最好、最坏的时间复杂度都为:O(n*log n)。在数据量...
2019-01-23 11:11:03
945
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人