ACM_思想
文章平均质量分 60
zz你的名字
不奢望过多,只希望未来的自己没有过多的遗憾。
展开
-
队列
转载来http://blog.csdn.net/qq_32680617/article/details/50822430 和栈差不多,队列也是一种数据结构。 不同的是,队列是先进先出,而栈是先进后出 栈http://blog.csdn.net/zxy160/article/details/53759131 话不多说,直接上图吧,其实挺简单的,栈会了,队列就是套用 队列为空时,返回为转载 2016-12-20 09:37:24 · 447 阅读 · 0 评论 -
并查集和prime和kruskal
//并查集#include<stdio.h>int f[1000]={0},n,m,k,sum=0;void init(){ int i; for(i=1;i<=n;i++) f[i]=i; return ;}int getf(int v){ if(f[v]==v) return v; else {原创 2017-03-08 18:33:19 · 551 阅读 · 0 评论 -
二分查找(范围统计)
给出n个数xi和m个询问,对于每个询问(a,b),输出闭区间[a,b]内的整数xi的个数。#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int main(){ int v[10]; int n,m,a,b; scanf("%d%原创 2017-07-21 08:34:28 · 774 阅读 · 0 评论 -
dp 01背包,完全背包,多重背包 模板
转自http://www.cppblog.com/tanky-woo/archive/2010/07/31/121803.html 首先说下动态规划,动态规划这东西就和递归一样,只能找局部关系,若想全部列出来,是很难的,比如汉诺塔。你可以说先把除最后一层的其他所有层都移动到2,再把最后一层移动到3,最后再把其余的从2移动到3,这是一个直观的关系,但是想列举出来是很难的,也许当层数n=3时还可以模拟转载 2017-01-12 15:54:03 · 742 阅读 · 0 评论 -
完全背包
转自:(http://blog.csdn.net/wumuzi520/article/details/7014830) 完全背包是在N种物品中选取若干件(同一种物品可多次选取)放在空间为V的背包里,每种物品的体积为C1,C2,…,Cn,与之相对应的价值为W1,W2,…,Wn.求解怎么装物品可使背包里物品总价值最大。 动态规划(DP): 1) 子问题定义:F[i][j]表示前i种物品中选取转载 2017-01-13 17:49:58 · 530 阅读 · 0 评论 -
多重背包
转自:http://blog.csdn.net/lyhvoyage/article/details/8545852 多重背包(MultiplePack): 有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微转载 2017-01-13 17:56:06 · 718 阅读 · 1 评论 -
总结一下最短路径的贝尔曼-福特算法(Bellman-Ford)及用队列优化(spfa)
转发的一二货的:http://blog.csdn.net/riba2534/article/details/54575050 他是从《啊哈算法》上学的,本来想总结一下,一看跟他一模一样,then,,,,,,关于贝尔曼福特算法,假设有n个顶点,我们只需要遍历n-1轮就可以了,因为在一个含n个顶点的图中,任意两点之间的最短路径最多含有n-1条边, 什么原理,我就不讲了,网上大牛博客很多,我在这里上一原创 2017-01-17 16:43:01 · 4757 阅读 · 0 评论 -
大数相加(hdu1002)
今天学了大数,写一篇文章,记录自己的错误与得到的经验。#include#includechar str1[10010],str2[10010];int main(){ int t; int k,len_max,num=1,i; scanf("%d",&t); while(t--) { int a[10010],原创 2016-11-05 11:09:47 · 583 阅读 · 0 评论 -
心态爆炸的HZH
链接 链接随时都可能失效。心态爆炸的HZH DescriptionHZH非常喜欢吃包子,一顿能吃好几笼!特别能吃!一天他去买包子,包子铺老板非常嫌弃他,卖包子的时候不愿意把一笼包子分开卖!HZH也非常生气!他决定用自己的聪明才智戏耍老板一下!已知老板只有两种类型的蒸笼他想知道老板无法卖给他的包子的最大数量。如:老板有3和5两种规格的笼,那么老板无法卖给HZH 7个包子并且没有比7更大的...原创 2018-03-17 18:53:36 · 229 阅读 · 0 评论 -
Codeforces Round #477 (rated, Div. 1, based on VK Cup 2018 Round 3) A. Stairs and Elevators
题目 题意:给出n层楼,每层m个房间,楼梯和电梯的分布这样的(1,x),(2,x)…,(n,x),1<=x<=m,楼梯c1,电梯c2,电梯的速度为v。给出起始点和终点,问最快的速度。 解法:其实很简单,算出走楼梯和电梯的四种情况,然后取最小值即可,记得同一楼层的情况。 状态不好,写了一堆bug#include<bits/stdc++.h>using namesp...原创 2018-04-30 16:48:59 · 275 阅读 · 0 评论 -
51Nod 1521
51Nod 1521 中文题,题意不说了。 思路:先看初始区间能装多少战舰,如果能就把初始范围0~(n+1)放入set中,然后依次把判断的点加入set,每加入一个,用lower_bound找出左右区间,ans-老区间能装多少个+新的两个区间能装多少个。set用lower_bound要这样用s.lower_bound(b[i]),用lower_bound(s.begin(),s.end(),b[...原创 2018-05-01 15:18:54 · 209 阅读 · 0 评论 -
“玲珑杯”线上赛 Round #15 河南专场 C 咸鱼魔法记
C – 咸鱼魔法记 Time Limit:1s Memory Limit:128MByteSubmissions:394Solved:137DESCRIPTION 给你一个01串,我们定义这个串的咸鱼值,是最长的全1串。现在你最多可以使用K次咸鱼魔法,每次魔法,你可以使得一个位置翻转(0变成1,1变成0)。问你这个串的咸鱼值最多是多少。INPUT 第一行两个整数N,K。表示串的长度和可以施展咸原创 2017-06-03 09:19:11 · 412 阅读 · 0 评论 -
二分法找数
#include#includeusing namespace std;int main(){ int a[10010]; int n,k,i; scanf("%d%d",&n,&k); for(i=0;i { scanf("%d",&a[i]); } sort(a,a+n); int原创 2016-11-26 20:04:04 · 530 阅读 · 0 评论 -
栈
引用从(http://blog.csdn.net/qq_32680617/article/details/50634920) 做了括号配对那道题,我才知道有栈这种东西 括号配对(http://blog.csdn.net/qq_32680617/article/details/50634807) 让我讲什么是栈,我也讲不出个所以然,毕竟水平有限。 自己理解,栈就是一种特殊的容器,只允许数据单转载 2016-12-20 09:31:33 · 441 阅读 · 0 评论 -
排序
转自http://blog.chinaunix.net/uid-28894229-id-4625483.html 1.插入排序 插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程转载 2016-12-10 19:17:45 · 416 阅读 · 0 评论 -
栈,队列,优先队列
[博客转自]http://www.cnblogs.com/yushuo1990/p/5995051.html 再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习。首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个阶段再去探究具体的实现,以及对基本结构的改造!C++标准库中的基本使用方法:栈: #incl转载 2016-12-09 19:48:43 · 351 阅读 · 0 评论 -
时间复杂度
转自http://blog.csdn.net/booirror/article/details/7707551/ 没有挤公交来上班过,就不知道生活的压力有多大。算法的时间复杂度和空间复杂度合称为算法的复杂度。 1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个转载 2016-12-10 20:27:55 · 479 阅读 · 0 评论 -
邻接表
fist数组的1~n号单元格分别用来存储1~n号顶点的第一条边的编号,初始的时候因为没有边加入,所以都是-1。即fist[u[i]]保存定点u[i]的第一条边的编号,next[i]存储“编号为i的边”的“下一条边”的编号。(重点) 一个不错的讲解:http://blog.csdn.net/ahalei/article/details/23356781int n,m,i;//u,v,w的数组要比m原创 2017-01-17 11:24:42 · 325 阅读 · 0 评论 -
NYOJ - 找球号(三)
找球号(三) 时间限制:2000 ms | 内存限制:3000 KB 难度:2 描述 xiaod现在正在某个球场负责网球的管理工作。为了方便管理,他把每个球都编了号,且每个编号的球的总个数都是偶数。有一天,xiaod发现少了一个球,你能帮他找出丢的那个球的球号吗?输入 有多组测试数据。每组数据包括两行。 第一行是一个整数N(0#include<stdio.h>#i转载 2017-02-12 14:49:00 · 460 阅读 · 0 评论 -
hdu1250 Hat's Fibonacci
Hat’s FibonacciTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11381 Accepted Submission(s): 3794Problem Description A Fibonacci sequence i原创 2017-03-17 17:19:29 · 324 阅读 · 0 评论 -
程序员们梦寐以求的头文件 <bits/stdc++.h>
转载;http://blog.csdn.net/u013446688/article/details/39033507 偶然在CF上做题,在借鉴别人代码的时候,看到了这个神奇的头文件,生平第一次见。。。 然后就稍稍地百度了一下,才知道它这么腻害,竟然包含了C++的所有头文件!使用和往常的头文件一样:[cpp] view plain copy print?在CODE上查看代码片派生到我的代码片#转载 2017-02-26 15:35:21 · 512 阅读 · 0 评论 -
hdu1160 FatMouse's Speed
FatMouse’s SpeedTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15613 Accepted Submission(s): 6886 Special JudgeProblem Description FatMou原创 2017-03-22 21:48:34 · 291 阅读 · 0 评论 -
hdu5701
hdu5701 题目:给你一个乱序的序列,问它现在所在区间是否为中位数,如果是,那么这样的区间有几个。 思路:位置i有一个数是a[i],现在只向左遍历这个区间如果如果比它打和比它小的一样多,那么ans++,那么只向右遍历也是这样。如果向两边遍历,想遍历完一边,再遍历另一边,如果另的一边比a[i]小的和那边比a[i]大的一样多,那么就会ans++。#include<stdio.h&...原创 2018-04-27 17:25:17 · 206 阅读 · 0 评论