摘要: SUM and REPLACE 题意:给你n个数,进行m次操作,分别是将区间[l,r]内的所有数替换成自己的因子数 和 对区间[l,r]进行求和。 题解:可以发现2的因子个数还是2,1的因子个数还是1,所以如果某个数被更新成1或者2之后就不需要再进行更新了。 阅读全文
posted @ 2018-02-04 10:31 Schenker 阅读(184) 评论(0) 推荐(0) 编辑
摘要: POJ-Matrix 题意:给你一个n*n矩阵的灯泡,灯泡的初始状态都为0,T次操作,分别是翻转操作:将x1,y1 x2, y2的灯泡状态反转 和 查询操作 找出x1, y1位置灯泡的状态。 题解:开一个2维树状数组进行更新操作。 假设我们现在需要翻转A区域内的灯泡, 我们就需要先将ABCD4个区域 阅读全文
posted @ 2018-02-02 15:53 Schenker 阅读(163) 评论(0) 推荐(0) 编辑
摘要: POJ - 3067 题意:有(1-n)个城市自上到下在左边, 另有(1-m)个城市自上到下在右边,共有m条高速公路,现求这m条直线的交点个数,交点不包括在城市处相交。 题解:先将高速公路读入,然后按照左边城市序号小的在前,左边序号相同的按照右边城市序号小的在前,然后根据右边的城市序号求逆序数就可以 阅读全文
posted @ 2018-02-02 14:47 Schenker 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目:Substring 题意:给你一个有向图, 一共有n个节点 , m条变, 一条路上的价值为这个路上出现过的某个字符最多出现次数, 现求这个最大价值, 如果价值可以无限大就输出-1。 题解:当这个有向图构成一个环的时候就会使得值无限大,所以先用拓扑排序判断一下有没有环,如果有环直接输出-1, 如 阅读全文
posted @ 2018-02-01 19:31 Schenker 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 1 int c[N]; 2 int topo[N], t; 3 bool dfs(int u) 4 { 5 c[u] = -1; 6 for(int i = head[u]; ~i; i = e[i].to) 7 { 8 if(c[i] < 0) return false; 9 else if(!c[i] ... 阅读全文
posted @ 2018-02-01 16:22 Schenker 阅读(139) 评论(0) 推荐(0) 编辑
摘要: Letters Removing 题意:给你一个长度为n的字符串,然后进行m次删除操作,每次删除区间[l,r]内的某个字符,删除后并且将字符串往前补位,求删除完之后的字符串。 题解:先开80个set 将每个字符对应的下标存入空间, 然后每次删除了一个字符之后就将字符串的相应位置改成一个不会产生干扰的 阅读全文
posted @ 2018-02-01 11:14 Schenker 阅读(198) 评论(0) 推荐(0) 编辑
摘要: HDU-1255 首先感谢一下 Titanium:http://acm.hdu.edu.cn/showproblem.php?pid=1255 从他的博客中得到了思路 怎么计算出重复的面积。 遇到这个求相交矩形的面积的时候,我第一反应就是将cnt标记下推,然后每次都将标记下推, 最后根据cnt的值来 阅读全文
posted @ 2018-01-31 16:59 Schenker 阅读(586) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1542 线段树扫描线又是线段树的一种特殊的跑法 先将X坐标离散化 然后将扫描线按照高度从矮到高进行更新 每次遇到下边的时候就在对应的左区间右区间所对应的cnt值++ 每次遇到上边的时候就在对应的左区间右区间所对应的 阅读全文
posted @ 2018-01-31 14:54 Schenker 阅读(311) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1711 1 #include<iostream> 2 using namespace std; 3 int nx[10000+5], b[10000+5], a[1000000+5]; 4 int n, m; 5 阅读全文
posted @ 2018-01-30 21:36 Schenker 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 逆序对的定义:长度为n的数组a,求满足i<j时a[i]>a[j]条件的数对个数。 第一次接触这种问题的人可能是更先想到的是n^2去暴力数前面有几个比他大的数。 n^2算法就是数一下前面有多少个数比现在这个数大 这样全部跑完只后就是逆序数了。 其中重点是 前面有多少个数比现在这个数大 但是每次从1 f 阅读全文
posted @ 2018-01-30 21:24 Schenker 阅读(778) 评论(0) 推荐(1) 编辑