LOJ6036编码】的更多相关文章

传送门 每个串只有一个?,?还只能填0或者1,不难想到2-SAT求解. 一个很暴力的想法是枚举?填0或者1,然后对所有可能的前缀连边.这样边数是\(O(n^2)\)的,需要优化. 看到前缀不难想到Trie树.将所有串的所有可能形态填入Trie树中,然后使用前缀后缀优化2-SAT连边的方式优化连边. 具体来说对于每一个串开两个点表示?填0还是1,对于Trie树上每一个串的结束节点也开两个点,表示这个点及其所有前缀中是否存在已经选过的串. 连边考虑一些互为前缀的串.设串为\(s_1,s_2,s_3,…
每个串拆成两个,都插入trie数. 把trie树建出来后,每一条从根到叶子的链上最多只能有一个变量为1. 这是个经典的前后缀优化2-sat建图的套路. 树上的做法也就是边dfs边做而已. #include<bits/stdc++.h> #define N 3300000 #define eps 1e-7 #define inf 1e9+7 #define db double #define ll long long #define ldb long double using namespace…
Link 代码可以在loj上看我的提交记录. Day 1 [LOJ6029]市场 对于一次除法操作,若区间内所有数的减少量均相同则可视作区间减法,否则暴力递归下去.显然一个线段树节点只会被暴力递归进去\(\log(\text{Max-Min})\)次.对每个点定义势能函数,每次暴力递归都会减小势能,而修改操作只会使\(\log n\)个节点恢复原势能,所以复杂度\(O((n+m\log n)\log a)\) . [LOJ6030]矩阵 显然需要构造出一行全黑,然后用这行全黑去覆盖剩下所有非全黑…
[LOJ6036]编码(2-sat) 题面 LOJ 题解 很显然的一个暴力: 枚举每个串中的?是什么,然后把和它有前缀关系的串全部给找出来,不合法的连边处理一下,那么直接跑\(2-sat\)就做完了. 现在的问题就在与不合法的数量可能会很多,所以需要优化这个连边的过程. 显然前缀关系和\(Trie\)树上的节点是相关的,即\(Trie\)树上这个串路径上所代表的所有点都是它的前缀,其子树中的每个串都以当前串为前缀. 首先构建\(Trie\),在往下的过程中对于路径上的所有已知前缀连边,这里肯定不…
传送门 LOJ Solution 因为?只有两种可能为0,1,所以就把这两个串搞出来. 那么现在?取0和?取1不能并存,前缀不能并存,所以就是一个\(2-SAT\),现在问题在于这个东西可能会有很多条边,所以考虑用Trie树优化这个过程. 显然根节点到这个点的路径上的所有字符串关键点都是它的前缀,那么考虑把每一个串用一个点挂到上面去,那么就还是可以跑\(2-SAT\),所以就可以做出来了. 代码实现 代码戳这里…
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但是当字节值>127时,默认解析便会出现问题. x="abc"+chr(150) print repr(x) #'abc\x96' u"Hello" + x #UnicodeDecodeError: 'ASCII' codec can't decode byte 这…
Base64编码可用于在HTTP环境下传递较长的标识信息.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到. 然而,标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的「/」和「+」字符变为形如「%XX」的形式,而这些「%」号在存入数据库时还需要再进行转换,因为ANSI SQL中已将「%」号用作通配符. 为解决此问题,可采用…
1.每次我们在MyEclispe中创建Jsp页面,生成的Jsp页面的默认编码是"ISO-8859-1".在这种情况下,当我们在页面中编写的内容存在中文的时候,就无法进行保存.如下图所示: 2.对于这种情况,如果我们想在jsp页面中编写中文内容,该怎么解决呢.其实我们可以通过设置每次生成Jsp默认的编码为utf-8,这样子我们就可以在jsp页面中写中文的内容了,而且还可以一劳永逸.具体步骤如下: MyEclipse,点击菜单上的     window--->preferences-…
Base64编码 写在前面 今天在做一个Android app时遇到了一个问题:Android端采用ASE对称加密的数据在JavaWeb(jre1.8.0_7)后台解密时,居然解密失败了!经过测试后发现,对相同的数据,采用相同的密钥加密时,得到的密文是不同的,而加密的代码是完全一样的,只是在加密最后,对加密结果进行Base64编码时,API的调用略有不同. 在Android上,ASE加密是这样写的: public static String aesEncrypt(String content,…
title: 使用etree.HTML的编码问题 date: 2015-10-07 17:56:47 categories: [Python] tags: [Python, lxml, Xpath] --- 出现问题 今天指导一个学生爬取新浪体育手机版的时候,发现lxml.etree.HTML处理网页源代码会默认修改编码,导致打印出来的内容为乱码.爬取的网址为:http://sports.sina.cn/nba/rockets/2015-10-07/detail-ifximrxn8235561.…