摘要:
multimap主要用于一个key值对应多个value的情况,比如一个人可以有很多个电话号码,其他的使用都还简单,主要记录一下怎么遍历:/*multimap的遍历方法,主要利用multimap中同一个key对应的value值连续存储这一特性*/#include#inc... 阅读全文
摘要:
题意:给出一些女孩的体重和美貌程度,这些女孩是按照组在一起的,要么选一整个组,要么只能选组里的一个,最后求总重量为W的女孩最大美貌程度要求:这一看就是并查集+背包,主要是这个选择的问题,用背包时按组数遍历,每次状态转移一整个组或遍历整个组转移其中一个女孩,这里面的状态... 阅读全文
摘要:
题意:有2n个人围成一圈坐在桌子边上,每个人占据一个位子,对应这2n个人是n对情侣,要求情侣不能吃同一种食物,并且桌子上相邻的三个人的食物必须有两个人是不同的,只有两种食物(1或者是2),问一种可行分配方式。要点:想不出来,后来看了网上的题解豁然开朗,题目要求情侣颜色... 阅读全文
摘要:
这个问题一直没仔细写过,cf上做到了就写一下,就是用栈存储+回溯,很简单。#include#include#include#include#includeusing namespace std;const int N = 20;vector edge[N];int s... 阅读全文
摘要:
题意:对于给定的一个数列a[n],如果现在点i,那么下一个点就在a[i],现在问给定n个点,找到一个最小的t,使得对于从任意一个点x出发,经过t次之后,到达的点y, 使得点y经过t次之后会回到点x。要点:一看就是图找环,找到所有独立的环对应的节点数,对所有节点数求最小... 阅读全文
摘要:
题意:给出一系列数字,求两两异或为x有几对。要点:看范围10^5就知道直接循环肯定gg,所以用一个num[x]存储x出现过几次,一般用两个for可以简化,像下面这样:#include#include#include#include#include#include#in... 阅读全文
摘要:
这题是校周赛上碰到的,很经典的一道题,里面的思想很巧妙。题意:中文题不解释要点:一开始根本想不到是最短路径,我们先把{an}中最小的值找到为a1,这样将所有的an%a1,这样最后的结果就是相当于x+k*a1,那么我们就要求这个x,也就是所有an%a1后组合可以达到的数... 阅读全文
摘要:
记录一下Dijkstra的模板,主要加了一个优先队列,时间复杂度变成O(mlogn),速度快了很多。struct Edge{ int from, to, dist; Edge(int u, int v, int w) :from(u), to(v), dist(w) ... 阅读全文
摘要:
Trie也就是字典树,可以处理一些字符串的查找问题,写起来还是很简单的,下面记录一下模板:#include#include#include#includeusing namespace std;const int maxnode = 400000;const int ... 阅读全文
摘要:
题意:有n个赌场,你在i赌场时,有pi的概率走到i+1,有1−pi的概率走到i−1.保证任何时候pi≤pi+1有q次操作,修改一个赌场的p值;或者询问[l,r]表示从第l个赌场走到r的概率,他在走的过程中不会离开区间[l,r].要点:比较容易看出是区间树,但是这个概率... 阅读全文