2013年5月2日

poj2155

摘要: 题目大意:给定一个n*n的矩阵,每个位置为0或1,初始全为0, 然后给定m个操作,每个操作修改或者询问 修改的话就是修改 x1,y1-->x2,y2的小矩阵的值,0改为1, 1改为0 询问的话就是询问 x,y位置是0或者1.思路:很明显这题只涉及到奇偶操作, 对于一个点x,y,我们用0,0-->x,y的矩阵的和的奇偶性代表其奇偶性 这样,每次操作我们只要保证x1,y1-->x2,y2内的点改变奇偶性,其他点不改变奇偶性就可以了 所以我们只要改变矩阵四个角的奇偶性就行了。(画个图模拟下就很明白了) 这样其他就是求和更改的问题了,正... 阅读全文
posted @ 2013-05-02 00:17 yzcstc 阅读(192) 评论(0) 推荐(0) 编辑

poj2182

摘要: 题目意思:一个1-n的排列,给出每个数前面比他小的数的个数,求该序列思路:很明显从低往前确定数,比如序列为 1 2 1 0那么 最后一个一定是 1,因为前面没比他小的,倒数第二个为3,因为除去1,他是第二大的。。。。以此类推那么就变成模拟了。。所以我们可以用平衡树,或者线段树做,但是代码有点长。。所以自然想到用树状数组了。。具体如下:刚开始给每个位置赋值为1,找到这个数,那么就删掉。当前第k大实际上就是前面和为k的那个数。。。。输出并删除 这样就要用到二分找第k大的。。 但一个问题是删完后会出现不只一个和为k的数,,解决办法只要取第一个就行了(想想就知道了) 1 /* 2 S... 阅读全文
posted @ 2013-05-02 00:07 yzcstc 阅读(343) 评论(0) 推荐(0) 编辑