![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
LIA_7
这个作者很懒,什么都没留下…
展开
-
Python基础2
选择排序核心思想:O(n2)O(n^2)O(n2) 的复杂度,两次for 循环循环遍历第一次循环找到min_index,接着再在后面的元素里面去找到最小的元素# 选择排序def select_sort(origin_items,comp = lambda x,y:x<y): items = origin_items[:] for i in range(len(items) - 1): min_index = i for j in range转载 2022-03-07 22:21:25 · 113 阅读 · 0 评论 -
数据结构第四次实验
实验题目:校园导游咨询实验目的掌握图的存储方法和最短路经算法。实验内容设计一个校园导游程序,为来访客人提供各种信息查询服务。测试数据根据实际情况指定。提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向图。顶点和边均含有相关信息。实验要求设计所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 2. 为来访客人提供图中任意景点相关信息的查询。为来访客人提供图中任意景点的纹路查询,即查询任原创 2020-06-17 19:43:03 · 1181 阅读 · 2 评论 -
数据结构实验二——迷宫的求解
实验要求和内容迷宫只有两个门,一个叫做入口,另一个叫做出口。把一只老鼠从一个无顶盖的大盒子的入口处赶进迷宫。迷宫中设置很多隔壁,对前进方向形成了多处障碍,在迷宫的唯一出口处放置了一块奶酪,吸引老鼠在迷宫中寻找通路以到达出口。求解迷宫问题,即找出从入口到出口的路径。实验思路考虑到迷宫的性质以及我们走迷宫的步骤,我们选择回溯法来寻找通路,选择栈这种数据结构用来保存一条完整的从入口到出口的路线。即...原创 2020-04-18 10:33:54 · 3195 阅读 · 3 评论 -
字典树+Codeforces1285D
字典树模板// 字典树模板#include <bits/stdc++.h>using namespace std;struct{ int num; // 如该节点是一个单词的结尾,记录单词的编号 int next[26];}trie[1000001];string s[100001],a;int tot,ans;void Insert(string c,...原创 2020-02-06 22:40:07 · 144 阅读 · 0 评论 -
DFS&&BFS
DFSvoid (int x){ if(x...符合某种条件||不能继续搜索) { 操作... return; } else { for(...) { if(!v[i] && ...) { v[i] = 1; cnt++; ... dfs(下一层); v[i] = 0; cnt--; }...原创 2019-11-30 16:52:54 · 113 阅读 · 0 评论 -
离散化(会继续更新)
离散化这个概念困扰了我很久,我就是不太能够理解离散化到底是在干什么。这几天又好好看了一下。,总的来说,就是将一串很长或者说有的元素很大的数列进行“压缩”,形成类似一种映射关系。举个例子,如果题目要求每个数的大小不超过1e9,但是如果开1e9的数组直接进行操作的话,可能会MLE,在有些时候我们不需要知道每个元素的具体值的大小,只需要知道他们的相对大小,这样就可以进行离散化。比如,{4,139,7...原创 2019-03-05 22:58:08 · 99 阅读 · 0 评论 -
3.10天梯赛校选
这次的题比两天前简单了很多,可我还是只是做出了1题而已。一共2个小时,共6道题。先来大致说一下自己出现的问题。1、遇到简单,自己熟悉的题目不仔细审题,导致漏掉很多关键性的条件。2、当开始WA时,心态逐渐变化,有些沉不住气了,代码越写越乱。3、冷静不下来,找不到合适的切入点。综合前面几次的失败,我得出个结论。在ACM比赛中,对题目的思路分析才是最重要的,代码是次要的。要做到有了思路之后很...原创 2019-03-10 17:42:44 · 91 阅读 · 0 评论 -
素数环问题
有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环。为了简便起见,我们规定每个素数环都从1开始。输入 有多组测试数据,每组输入一个n(0<n<20),n=0表示输入结束。输出 每组第一行输出对应的Case序号,从1开始。如果存在满足题意叙述的素数环,从小到大输出。 否则输出No Answer。样例输入6830样...原创 2019-04-03 19:30:54 · 1535 阅读 · 0 评论 -
Educational Codeforces Round 65 (Rated for Div. 2)
Div. 2 的难度,前四道题还是比较简单的。A题智障题,不说了。B题现在还没看懂题意。C题大意:一共有n个人,分成m个组,每个组有ki个人。每个人都可以把一个消息告诉一个组里的人。问与第i个人知道同一个消息的人有几个。SampleInput7 53 2 5 402 1 21 12 6 7Output4 4 1 4 4 2 2样例解释每一组第一个数是组内人的个数...原创 2019-05-21 18:14:26 · 131 阅读 · 0 评论 -
HDU 1250 (Fib 数列)
题意:前四个数都是1,一个数是前四个数的和,求 f(n)正好今天在学Java的相关语句,找到了Java解这道题的方法。Java解大数真香啊……public class Main { // 类名最好用Main public static void main(String[] args) { Scanner cin = new Scanner(System.in); ...原创 2019-08-20 20:06:12 · 124 阅读 · 0 评论 -
ACM中Java的各种使用(转载)
这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目。输入:格式为:Scanner cin = new Scanner (new BufferedInputStream(System.in));例程:import java.io.;import java.math.;import java.util....转载 2019-08-20 20:16:21 · 130 阅读 · 0 评论 -
Java 对字符串的处理
直接上方法,后面跟例子public int length()public boolean equals(Object anObject) public String substring(int startpoint) public String substring(int start,int end)pubic String replace(char oldChar,char newC...原创 2019-08-22 21:13:42 · 146 阅读 · 0 评论 -
C++STL之lower_bound、upper_bound和binary_search()
一句话放在前面,lower_bound和upper_bound这两个东西,在进行一串数列经过排序之后再插入元素的操作时,特别好使。先说lower_boundlower_bound(起始地址,结束地址,要查询的数值),返回大于等于value的第一个元素的位置。若所有的元素都小于要查询的值,则返回最后一个元素的下一个位置。注意:lower_bound是在前闭后开的区间内进行查询示例代码#in...原创 2019-03-05 22:24:03 · 239 阅读 · 0 评论 -
C++ STL应用(持续更新……)
C++ STL 与ACM竞赛相关的应用1、vectorvector是动态数组,可以理解为是能够根据需要随时申请内存的动态数组。常用操作如下:容量vec.size() 向量大小vec.empty() 向量判空 (如果为空true、不为空false)修改vec.push_back() 向向量末尾添加一个元素vec.pop_back() 删除向量末尾元素vec.i...原创 2019-02-25 23:12:34 · 185 阅读 · 0 评论 -
并查集
简单的并查集写法#include <bits/stdc++.h>const int N = 1e6+10;int fa[N];///某个节点的父节点int Rank[N];///void init(){ for(int i=1;i<=N;i++) { fa[i]=i;///初始化,每一个点都代表自己 Rank[i]=1;...原创 2019-02-28 13:26:21 · 243 阅读 · 0 评论 -
快速幂、数论初步
今天是从头开始学一遍。先看的快速幂。晚上学长讲课又简单开始讲了一点数论的知识,这部分的内容正好结合了起来。晚上回到宿舍总结一下今天学到的算法知识1、(a^b)%p//用来求(a^b)%pint power(int a,int b,int p){ int ans= 1 % p; for(;b;b>>=1)//b>>=1 等价于 b=b>>1...原创 2018-12-17 23:01:17 · 154 阅读 · 0 评论 -
洛谷P1164
uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。题目描述不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩MMM元(M≤10000)(M \le 10000)(M≤10000)。餐馆虽低端,但是菜品种类不少,有NNN种(N≤100)(N \le 100)(N≤100),第iii种卖aia_iai元(ai≤1000)(a_原创 2019-01-24 22:41:59 · 327 阅读 · 0 评论 -
洛谷P1064
先放题目金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具工作椅 无如...原创 2019-01-24 23:10:50 · 157 阅读 · 0 评论 -
洛谷P1115
这是一道求最长字段和的题目先来看题面题目描述给出一段序列,选出其中连续且非空的一段使得这段和最大。输入输出格式输入格式:第一行是一个正整数N,表示了序列的长度。第二行包含N个绝对值不大于10000的整数Ai,描述了这段序列。输出格式:一个整数,为最大的子段和是多少。子段的最小长度为1。输入输出样例输入样例#1:72 -4 3 -1 2 -4 3输出样例#1:4这...原创 2019-01-26 17:38:15 · 221 阅读 · 0 评论 -
C++ STL 链表写法
用 list 解决约瑟夫问题。约瑟夫问题是:有 n 只猴子,按顺时针方向围成一圈选大王(编号为 1~n),从第 1 号开始报数,一直数到 m,数到 m 的猴子退到圈外,剩下的猴子再接着从 1 开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王。编程求输入 n、m 后,输出最后猴王的编号。输入数据:每行是用空格分开的两个整数,第一个是 n,第二个是 m(0<m, n<=1...转载 2019-01-30 10:44:54 · 4537 阅读 · 0 评论 -
欧拉函数简单模板
///直接求小于等于n,且与n互质的个数int Euler (int n){ int ans=n; for(int i=2;i<=sqrt(n);i++) if(n%i==0) { ans = ans/i*(i-1); while(n%i==0) n/=i; } ...原创 2019-02-21 20:36:49 · 132 阅读 · 0 评论 -
快速幂、欧几里得算法
/*///暴力枚举求素数for(int i=2;i<=n;i++){ bool g=0; for(int j=2;j*j<=i;j++) if(i%j==0) { g=1; break; } if(g==0) { tot++; p[tot]=i; }}...原创 2019-02-16 20:28:28 · 178 阅读 · 0 评论 -
线段树模版
#include<cstdio>using namespace std;int n,p,a,b,m,x,y,ans;struct node{ int l,r,w,f;}tree[400001];inline void build(int k,int ll,int rr)//建树 { tree[k].l=ll,tree[k].r=rr; if(tre...转载 2019-02-27 15:07:48 · 107 阅读 · 0 评论 -
归并排序
归并排序的简单应用int a[10]={13,27,19,2,8,12,2,8,30,89};int b[10];#include <iostream>using namespace std;void Merge(int a[],int s,int m,int e,int tmp[]){ int pb=0; int p1 = s,p2 = m+1; while ( p...原创 2019-02-17 20:17:23 · 94 阅读 · 0 评论