摘要: 题意:一串项链,每颗珠子上有一个数字,任选连续的一段,按顺时针顺序将它们的数字拼起来,若新的数字是k的倍数,则这个数字是一个wonderful value 。求有多少个wonderful value 。题解:由于K非常小,我们可以用dp[j][i]表示以第j个数结尾的所有数字中模k为i的方案为多少,那么计算dp[j+1][i]的时候乘上偏移值并加上j+1个珠子的值就行了。复杂度为nk。注意如果读入数就去模的话,要记下原来的数的长度,比如9 和123拼起来9要乘1000,如果123先取模的话可能就乘100或者10了。就是这里卡了两个多少时……//#pragma comment(linker, & 阅读全文
posted @ 2013-09-26 16:56 baoff 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给你一颗n个点的树,每个点有一个权值。然后有m个询问,问从x到y的简单路径中,权值 xor z最大是多少。首先异或最大就是在字典树上找它的按位取反,首先满足高位。思路:可持久化的0-1字典树,每个点在父节点的历史版本上新建一棵字典树,字典树上的每个结点给一个值记录从这个结点到树的根节点,有多少个权值会经过这个字典树上的结点。询问的时候在字典树上奏即可。由于a[i]#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#d 阅读全文
posted @ 2013-09-26 10:38 baoff 阅读(262) 评论(0) 推荐(0) 编辑