摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4638求某一区间所包含的连续的段 对于乱序的数 到了i这个数所包含的段数 首先把这个数看作单独的段 再看一下前面是否出现了它的朋友 若出现了就说明前面已经加过这样单独的段了 就把前面的更新掉-1 这样始终保证一个段的最后一个值记录着这是第几个段 从左到右扫描一遍 离线处理后 这样用树状数组或者线段树进行区间求和就可以了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define N 100010 7 using namespace std. 阅读全文
posted @ 2013-08-02 12:28 _雨 阅读(230) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4635tarjan缩点 统计缩点后每个结点的出度入度 将那个包含原来点数最少的 且出度或者入度为0的大节点看作一个整体内部连边n*(n-1)个 连全部的; 其它的点为一整体连全部的 再两者连一同向的边 保证它的出度或者入度依旧为0的情况下任意连 最后减去原来的边M 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 100010 8 #define M 100010... 阅读全文
posted @ 2013-08-02 10:46 _雨 阅读(290) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4642这题。。刚一看以为是什么高深的博弈 后来看过的人挺多 想是不是有什么规律 结果理解错题意了 以为随便圈一矩形改变就可以 然后想了一方法 跟QC说 然后就知道自己理解错题意了 必须圈到右下角 然后就乱了 后来QC说感觉只要右下角是1她就赢了 一想确实是这样啊 。。好简单 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int a[110][110]; 7 int main() 8 { 9 int i,j,t... 阅读全文
posted @ 2013-08-02 09:50 _雨 阅读(190) 评论(0) 推荐(0) 编辑