
数据结构
木木木木子子子
这个作者很懒,什么都没留下…
展开
-
cf990 B. Micro-World 模拟
第一次wa 是直接模拟,用vector erase换了一个思路 反着来 考虑一个数会不会被另一个数吞并。而不是考虑一个数能够吞并多少个数第二次wa 是visit 用了short 应该用int 的getset 无重复元素,有序的for(auto &t:s) 这个是c++11 并且t 是数值不是指针iterator it 不能=kk.begin()+1#include <iostre...原创 2018-06-10 21:04:42 · 454 阅读 · 0 评论 -
map 好用! C. Equal Sums
C. Equal Sumstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given kk sequences of integers. The length of the ii-th sequence equals to ni...原创 2018-06-09 11:34:47 · 343 阅读 · 0 评论 -
Codeforces Round #484 (Div. 2) B. Bus of Characters 模拟栈
http://codeforces.com/contest/982/problem/B一开始没有想到模拟栈,用while来寻找introve的位置,超时#include <iostream>#include <queue>#include <stdio.h>#include <algorithm>#include <stack>...原创 2018-05-24 19:08:24 · 182 阅读 · 0 评论 -
Codeforces Round #478 (Div. 2) D Ghosts 会超时的判断两个之间关系,可以用map
给出起始坐标(x,y)要充分利用题目条件,最好全都列出来运动方向(Vx,Vy)很容易得到判断两个是否相碰(gho[a].y-gho[b].y)*1.0/(gho[a].vy-gho[b].vy)==(gho[a].x-gho[b].x)*1.0/(gho[a].vx-gho[b].vx)但是每一个都判断双重循环肯定超时不要忘了题目为什么给定初始位置在一条直线上,而不是任意位置,肯定是为了化简上面式...转载 2018-05-13 17:00:12 · 155 阅读 · 0 评论 -
set和map区别
转自https://blog.youkuaiyun.com/terence1212/article/details/52487656set是一种关联式容器,其特性如下:set以RBTree作为底层容器所得元素的只有key没有value,value就是key不允许出现键值重复所有的元素都会被自动排序不能通过迭代器来改变set的值,因为set的值就是键map和set一样是关联式容器,它们的底层容器都是红黑树,区别...转载 2018-04-13 18:28:36 · 35597 阅读 · 6 评论 -
poj 3295 Tautology 构造法
1.第二次做了还是没有思路2.我是从字符串的长度考虑,如果长度=1 ,就会怎样 长度=3 就有多少种可能,并且打算用递归的算法,把一个字符串分解成几小部分来解,但是问题来了,我应该怎么分解对于一个字符串,第一个肯定是运算符,但是后面应该怎么拆分,拆分后又怎么能够利用子式。这些都无法解决3. 看别人的解题思路,既然这和运算符有关的,那就考虑栈操作,这不就是我们学栈这个数据结构时的例题吗3.同时我没有...转载 2018-04-17 16:10:42 · 201 阅读 · 0 评论 -
poj1195 Mobile phones 树状数组
#include <iostream>#include <cstring>#include <cmath>#define N 1028#define lowbit(x) x&(-x)using namespace std;int num,n,q,x1,x2,y3,y2;int c[N][N];void add(int x,int y,in...原创 2018-03-22 21:01:53 · 143 阅读 · 0 评论 -
poj 2155 Matrix 二维树状数组
http://poj.org/problem?id=2155没有想到c数组用来记录改变次数 ,我一开始是记录了改变 如果c[x][y]=1 c[x][y]=0 这样子 行不通,因为c[x][y]管的不仅是一个点,无法确定 c的改变是因为哪个点改变而得到的。可以参考论文:浅谈信息学竞赛中的“0”和“1” 在这里解释一下为什么 增加头和尾+1 的两个节点的值 ,之后通过将1~所问的值n 的c[x]数组...原创 2018-03-22 20:14:01 · 127 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort 树状数组/归并排序 求逆序数
1.为什么最小交换次数是求数组的逆序数?比如91054 9作为最大,它肯定要沉到最后面,所以肯定要交换4次 并且9的逆序数 (9,1)(9,0)(9,5)(9,4) 正好是4, 同时9沉下去后,其他数字的相对位置没有改变,同样的道理一个数有多少个逆序数就要交换多少次,所以肯定要交换的次数就是最小交换次数就是这些逆序数的和。2.如何求数组逆序数?1.归并排序时顺便记录一下逆序数的个数 void...原创 2018-03-18 16:26:51 · 245 阅读 · 0 评论 -
hdu2648Shopping map的运用
#include <iostream>#include <cstring>#include <queue>#include <vector>#include <map>#define N 23541using namespace std;int main(){ int num,day; while(cin...原创 2018-03-11 19:02:32 · 246 阅读 · 0 评论