摘要:
G++213ms12MB题意:给一个序列,询问时要返回给定区间的和,修改时整个区间都改成一个值。思路: 按提示说的做。线段树,再设置lazy_tag,必要时再修改 查询时遇到tag就将自身分配成两半分别给左右孩子(如果有的话),然后为左右孩子置tag,取消自身的tag。当查询的节点刚好有tag,... 阅读全文
摘要:
思路: 两种实现方法: (1)用链表(2)用数组。 1 #include 2 using namespace std; 3 int n, q, L, R, op, P, W; 4 5 struct node 6 { 7 int v; 8 node *ll,*rr; 9 };10... 阅读全文
摘要:
G++77ms0MB思路:这题用暴力是最快的,甚至比线段树还佳。 按全部都是查询的来算,是O(n*q)。 1 #include 2 using namespace std; 3 const int N=10010; 4 int w[N], n, q, L, R, tmp; 5 6 int mai... 阅读全文
摘要:
ACG++826ms146MB思路: 时间复杂度O(nlogn)。 1 //#include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #in... 阅读全文
摘要:
题意:给一个9*9的矩阵,如果该矩阵是有效的数独盘的话,返回true。注意同一行或同一列的数字只能出现1次,同时其中的9个小的数独盘也不能重复。思路:扫整个盘一遍,在扫的同时先考虑行,列,小盘。用二维数组维护列的,用一维数组维护行的,再用个二维的维护小盘。用哈希来判断是否已经存在。 1 bool i... 阅读全文