笔记
不会AC的鹏
低调学习。AC AC
展开
-
并查集详解(保证是那种读完就会的,还很意思)
转的一个超级有意思,好懂的并查集解释, 膜拜大神~~找了好久都没找到原帖大多都是转的 , 后来在某评论下看到原帖链接啦 点这里哦故事读完,并查集就会了~~~~~江湖上散落着各式各样的大侠,有上千个之多。他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”,只要是能通...转载 2019-07-29 14:13:40 · 870 阅读 · 1 评论 -
HDU 1405 The Last Practice
HDU-1405暴力枚举 (水题)注意格式太坑AC代码(c++)#include <iostream>#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false); int n; int num=1; while(cin&...原创 2019-08-15 15:24:41 · 114 阅读 · 0 评论 -
SDUT-3771
题目链:SDUT-3771`#include #include<bits/stdc++.h>using namespace std;struct node{int l,r;long long data;} tree[1000005];long long num[1000005];void build(int id,int l,int r){tree[id].l...原创 2019-08-14 10:59:24 · 125 阅读 · 0 评论 -
SDUT-3039 迷之好奇
题目链接:SDUT-3039#include <iostream>#define INF 0x3f3f3f3fusing namespace std;struct node{ int l,r; int ma,mi;} tree[200002]; //树long long int num[200002];//用来存数据void creat(int ...原创 2019-08-14 10:56:00 · 165 阅读 · 0 评论 -
HDU - 1241 Oil Deposits
运用了广搜加上染色。染色:就是将不同的小组用不同的值来表现,就像染了色一样。AC代码(c++)#include <iostream>#include<string.h>using namespace std;int vis[101][101];char mp[101][101];int num;int dx[8]= {0,0,1,-1,1,-1,1,-1...原创 2019-08-07 14:05:39 · 189 阅读 · 2 评论 -
POJ - 3126 Prime Path
题目链接:POJ-312思路:BFS思想,逐一由千位变到个位,每一位由1变到9,没变一次,比对这个数是不是素数,如果是就将它保存到队列中,循环里每次处理的都是上一个数,这才是广搜的核心。再使用一个一维数组,用变化后的素数表示下标,用它对应的值来表示所要进行的步数。先将1000到10000的所有素数都求出来保存到一个一维数组中(下标对应值为1),下标不是素数值为0.AC代码(c++)...原创 2019-08-01 19:54:16 · 197 阅读 · 1 评论 -
辗转相除法求最大公约数
辗转相除法求最大公约数算法表示流程图:代码解释#include <stdio.h> int main(){ int a,b,r; printf("请输入两个正整数:\n"); scanf("%d %d",&a,&b); //如果a<b,交换a和b的值 if(a<b) { r=a;...原创 2019-07-27 20:45:47 · 664 阅读 · 1 评论 -
UVa 10929 - You can say 11
经过几十次的WA终于A了;escriptionYour job is, given a positive number N, determine if it is a multiple of eleven.Input specificationThe input is a file such that each line contains a positive number. A line...原创 2019-07-26 19:12:08 · 195 阅读 · 1 评论 -
UVALive-3399-Sum of Consecutive Prime Numbers(素数筛,暴力)
思路:这个题就先用素数筛选,然后循环累加。(后面有素数筛选的解释)代码(c++)#include <bits/stdc++.h>using namespace std;int vis[20000];int s[3000];int top;void Init() //素筛{ memset(vis,0,sizeof(vis)); vis[1]=1; ...原创 2019-07-26 17:27:20 · 98 阅读 · 1 评论 -
boll函数
boll函数只有真或假,它返回的是真假而不是数字;boll f(int a , int b){ if(a>b) return a; else return b; }boll返回的是真与假,用于,快速排序中所需要的结果的排序!...原创 2019-07-26 15:42:55 · 917 阅读 · 1 评论 -
SDUT-2828 字典树
原题链接:sdut-2828 字典树#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct node{ int data;//记录出现了几次,这个字符串 struct node *next[26];//26个字母,二十六个孩子}ST;ST a[100...原创 2019-07-31 11:10:45 · 302 阅读 · 1 评论 -
SDUT-2143图结构练习——最短路径(比所有CSDN上的都简单!!!)
搞了一晚上,和最短生成树差不多,用的迪杰斯特拉算法。超简单一看就会!#include <stdio.h>#include <stdlib.h>#include<string.h>#define INF 0x3f3f3f3fint distance[101][101];int vis[100];int parent[100];int c[1...原创 2019-07-30 21:33:30 · 204 阅读 · 1 评论 -
SDUT-3347 数据结构实验之数组三:快速转置
首先补充下什么叫做稀疏矩阵:矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵(sparse matrix)。了解就可以跟题目没有一毛钱关系这个题的数据量比较小只有50,所以可以用暴搜按顺序把矩阵逆置。也可是在输入的时候就按照(y,x)的顺序输入,然后排序。两种方法都能过,这后面的...原创 2019-07-25 15:22:16 · 108 阅读 · 1 评论 -
快速排序
快速排序sort类函数:快速排序需要注意的:1.一般是从小到大排序;2.声明从大到小如下:sort(a,a+x,cmp);bool cmp(int a,int b){ return a>b;}要注意bool;函数名 功能描述sort 对给定区间所有元素进行排序stable_sort 对给定区间所有元素进行稳定排序partial_sort 对给定区间所有元素部分排...原创 2019-07-25 15:17:30 · 330 阅读 · 1 评论 -
SDUT-2506 完美网络
AC代码(c++)#include <iostream>using namespace std;#include <bits/stdc++.h>#include <queue>int main(){ int st[12000]; queue<int>q; int t; cin>>t; ...原创 2019-07-30 14:45:28 · 92 阅读 · 2 评论 -
SDUT-1500 Message Flood(map)
SDUT-1500 Message Flood(map)提示:这个题用到了哈希,题意就是查看去除输入的m个数据,还剩多少个联系人需要回复。至于字符串的哈希,推荐用C++中的map函数,方便快捷,map充当一个容器,也相当于一个一对一的哈希表,所以用来做这个题来再合适不过。代码实现如下(g++):#include <iostream>#include <bits/std...原创 2019-07-25 10:46:38 · 144 阅读 · 1 评论 -
KMP函数的记录
KMP的记录暴力匹配法int ViolentMatch(char* s, char* p){ int sLen = strlen(s); int pLen = strlen(p); int i = 0; int j = 0; while (i < sLen && j < pLen) { if (s[i] == p[j]) { //①如...原创 2019-07-24 19:40:40 · 98 阅读 · 1 评论 -
POJ - 1703 Find them, Catch them
题目链接:POJ-1703并查集的变形应用建立两个数组,a[ ]用来表示双亲结点,b[ ]来表示与x不同的帮派的编号,只需要一个就够了,应为一个通过 函数find可以找的他的parent。part 1 建立找双亲的函数 findx()int findx(int x){ if(x!=a[x]) { a[x]=findx(a[x]); } ...原创 2019-07-29 16:53:57 · 134 阅读 · 1 评论 -
Heavy Transportation(最大路径)
最短路径的反向,我用了迪杰斯特拉,注意数组要大原数据的大小,我错了我几次就是应为这里。AC代码(c++)#include <iostream>#include<string.h>#define INF 0x3f3f3f3fusing namespace std;int c[1001];int a[1001][1001];int vis[1001];int...原创 2019-08-12 11:28:09 · 851 阅读 · 0 评论