-
先放资料。 前置技能点: 剩余系 剩余系**:设模为m,则根据余数可将所有的整数分成m类,分别记成[0],[1],[2],…[m-1]****,** 这m个数**{0,1,2,****…****m-1}**称为一个完全剩余系, 每个数称为相应类的代表元。 当m=10(偶数)时候,则{0,1,2,3,4,5,6,7,8,9}是最小非负完全剩余系 {-5,-4,-3,-2,-1,0,1,2,3,4,5} 是绝对值最小完全剩余系 {-4,-3,-2,-1,0,1,2,3,4,5} 绝对值最小 {1,2,3,4,5,6,7,8,9,10}是最小正完全剩余系 简化剩余系:在每个剩余类选取至1个与m …
Read More -
其实 东西之前出现过...不过好像重启一下服务器就可以了? 这次比较麻烦。 一开始我是直接google 了这条错误信息,结果答案五花八门,或者说...可能的原因非常多。 排查了几个。。。还是没有搞定。。。 突然想到。。。。为何不直接看log....我好傻啊。 2016-10-10 10:36:54 3755 [Note] IPv6 is not available. 2016-10-10 10:36:54 3755 [Note] - '0.0.0.0' resolves to '0.0.0.0'; 2016-10-10 10:36:54 3755 [Note] Server socket created on IP: …
Read More -
题目链接 题意:给一个仅由小写字母组成的字符串,然后m个操作,每个操作一个区间,要求把区间中排列成字典序最小的回文串,如果不能形成回文串,就忽略该操作。 思路:和上一道线段树优化计数排序的题目很像,几乎是一样的。 同样的,26棵线段树,每种字母对应一棵。 每次统计询问区间中每种字母的个数。 然后先判断是否能形成回文(奇数长度只有一个个数为奇数的,偶数长度不能出现个数为奇数的) 能的话重置区间,然后前后分别覆盖。 注意如果是奇数长度的话,记得先覆盖中间点。 需要注意这道题的输入输出方式不是标准的。。。而是要加文件。。。不然会MLE 1 然而Tle 19....Tle了好久。。。 最后换了种线段树的写法就过了。。。 然而后面这种写法就 …
Read More -
题目链接 题意:给出一个字符串,仅由小写字母组成。现在给出q个操作,每个操作l,r,k三个参数,k=1表示把区间[l,r]变为升序排列,k=0表示把区间[l,r]变为降序排列。 思路:首先,最重要的一点是,由于只有26个字母,联想到计数排序。 对于字符集数目比较小情况,一定要想到计数排序。 对于字符集数目比较小情况,一定要想到计数排序。 对于字符集数目比较小情况,一定要想到计数排序。 那么我们回顾计数排序,不妨考虑升序排列的情况,是怎么做的呢? 做法是统计该区间中每种字符的个数,然后按照字符的大小,从小到大在区间上从左到右得放置每种字符。 大概是这样子: for(int j=x;j<=y;j++) cnt[s[j] - …
Read More -
题目链接 题意:给出一个n个数的排列,每次可以把一个数放到最前面或者最后面的位置,问至少要进行多少次操作才能使得数列升序。 思路:考虑不被移动的那些数,当把所有一定的数去掉以后,这些剩下的数一定是一段数值连续,位置递增的数。如果想要移动的数最少,俺么这串递增的数就尽可能长。 dp[a[i]] = dp[a[i]-1] + 1 那么ans = n - max{dp[i]} 另外:对于要移动的数,我们可以按照一定顺序(放在前面的数按照递减顺序,放在最长序列后面的数按照递增顺序)移动,可以保证每个数只需要移动一次。 /* *********************************************** Author …
Read More -
题目链接 题意:给一个n*m的由小写字母组成的table.要求从上往下每一行字典序不严格递增。问最少删除几列才能满足。 思路:一开始想的是用一个left数组维护每次删除后某一列左边是哪一列,目的是为了下次的判断。 再想了下,发现没必要。我们只需要知道,两行之间的关系是否确定就好了。over[i][j]为真表示第i行和第j行的胜负已分,对于胜负已分的行,大小无所谓。 对于胜负未分的行,如果table[i][j]>table[i+1][j],就必须要删掉这一列了。。。。 需要注意的是,某一列最多删一次,记得打上标记。 以及ove标记的时候,要在最后确定这一列没有被删以后再标记。。。用一个set存下可能的胜负已分的行的下标即可。 …
Read More -
题目链接 题意:n堆石子,每堆a[i]个,k种颜色。给每个石子涂色,要求对于每种颜色,任意两堆中该颜色石子的个数最多差一个。问是否有解,有解输出一组方案。 思路:我们发现有解与否只和最大值最小值有关。 设mn为最小值,mx为最大值。 当mx>mn+k时无解,否则有解。 如果有解。。。输出方案就好了。。。 /* *********************************************** Author :111qqz Created Time :2016年10月04日 星期二 02时40分20秒 File Name :code/cf/problem/509B.cpp …
Read More -
题目链接 题意:nm个格子,有和.两种类型。定义一个湖为边相邻的只有.组成的最大点集合,且任何一个.不在边界上。现在给出一个nm的图保证至少有k个湖。问填多少个.成,才能使得恰好有k个湖。 思路:贪心,先处理出所有的湖的大小,然后从小往大填。 注意dfs的时候如果某个“可能”的湖遇到了边界,要把之前打的标记撤销掉。 /* *********************************************** Author :111qqz Created Time :2016年10月03日 星期一 21时18分03秒 File Name :code/cf/#375/D.cpp …
Read More -
题目链接 题意:给出n,m,n个数,对其中的一些数进行修改,要求1..m中出现次数最少的数最大,输出这个最少的数最大是多少,以及修改的次数。 思路:最小的数最多出现n/m次。 竟然因为排序后下标变乱不知所措40分钟。。。我也是醉了。。。 /* *********************************************** Author :111qqz Created Time :2016年10月03日 星期一 19时29分52秒 File Name :code/cf/#375/C.cpp ************************************************ */ #include …
Read More -
弱校连萌 2016 10.3
Oct 3, 2016 · 4 min read题目链接 。。。sad..... 果然没睡够&起来就写题脑子完全就是不清醒的状态。。。 这个不清醒。。。主要体现在。。。。10+次。。。忘记删条件编译。。。 改着改着。。。就忘记这件事了。。。好烦啊。。。本来早就A了。。。结果又接着去改。。。 题目链接:jag2016 就水了三道题。。。。 A是个暴力。。直接O(n2)算乘积,然后再check一下合法性就好。。。尼玛wa到我怀疑人生。。。过了好久才考虑也许是不支持条件编译的问题。 /* *********************************************** Author :111qqz Created Time :2016年10月03日 星期一 12 …
Read More