随笔分类 - 模拟
摘要:被卡的一道题,其他情况都想出来了,主要是没想好A[i] == B[j]时候的处理,取最后面最大的可能不是最优解,相等的时候我暴力比较后缀的(为此还要维护一个链),这个操作是O(len) 所以T了。(也可能是写挂了,全是O(len)的数据是很难造的,看过的名单似乎暴力可行)实际上取后面最大的只是一种可...
阅读全文
摘要:模拟题,意思是一个字符串,单词直接用','或';'来分割,可以为空,把不含前导0的整数和其他单词分别放入A和B。按照一定格式输出。没有用stl的习惯。维护两个下标i,j,表示开区间(i,j),两段补上分割符号。每个单词后面都加上一个',',输出的时候在处理掉。用最后的','判断A和B是不是空。#in...
阅读全文
摘要:一道水题WA那么多发,也是醉了。f看成函数的话,其实就是判断一下反函数存不存在。坑点,只能在定义域内判断,也就是只判断b[i]。没扫一遍前不能确定Impossible。#includeusing namespace std;typedef long long ll;const int maxn = ...
阅读全文
摘要:只和连通分量以及度数有关。不同连通分量只要连一条边就够了,连通分量为0的时候要特判。一个连通分量只需看度数为奇的点的数量,两个端点(度数为奇)是必要的。如果多了,奇点数也一定是2的倍数(一条边增加两个度数,总度数是偶数),把多余的成对奇点连边,一定存在一条欧拉路径。并查集维护或者dfs都可以。/**...
阅读全文
摘要:模拟题。每个单元格有表达式就dfs,如果有环那么就不能解析,可能会重复访问到不能解析的单元格,丢set里或者数组判下重复。这种题首先框架要对,变量名不要取的太乱,细节比较多,知道的库函数越多越容易写。注意细节,注意格式。/***************************************...
阅读全文
摘要:先枚举两个矩形,每个矩形横着放或竖着放,把一边拼起来,如果不是拼起来有缺口就尝试用第三个矩形去补。如果没有缺口就横着竖着枚举一下第三个矩形和合并的矩形x或y拼接。#includeusing namespace std;const int N = 300+5;int ax[3][2],ay[3][2]...
阅读全文
摘要:平衡树的题,Treap破之,比较难搞的出现相同题数罚时的情况,解决方法是在每个结点用一个set,保证结点值的时候可以把题数和罚时保存到一个int里,令v = n*MaxPenaltySum-penalty。这样就可以很方便地做比较了。初始化有一定技巧。细节很多容易出错。 写静态版,如果有合并操作要内...
阅读全文
摘要:模拟题,map搞一搞。要想清楚一个结点应该是要通过一个字符串找到下一个结点,题目保证所以文件夹非空,所以只要判断一个结点是不是叶子结点就可以判断它是不是文件,用了点c11的特性。#includeusing namespace std;typedef map Node;map::iterator it...
阅读全文
摘要:题意:给出一个后缀表达式f(x),最多出现一次x,解方程f(x) = 0。读取的时候用一个栈保存之前的结点,可以得到一颗二叉树,标记出现'X'的路径,先把没有出现'X'的子树算完,由于读取建树的时候是由底向上的,这步可以在读取的时候顺带完成。注意'X'或'1/x'在某个结点和'0'相乘,那么'X'等...
阅读全文
摘要:阅读题,概要:给出垃圾邮件和非垃圾邮件的集合,然后按照题目给出的贝叶斯公式计算概率一封邮件是垃圾邮件的概率。逐个单词判断,将公式化简一下就是在垃圾邮件中出现的次数和在总次数的比值,大于二分之一就算是垃圾邮件的单词。如果一个邮件里的垃圾邮件的单词出现次数超过给定比例就算是垃圾邮件。需要注意的地方是:一...
阅读全文
摘要:题目链接:http://codeforces.com/gym/100650根据给出的树和d,求出一些结点,这些结点形成子树的第d层结点数应该尽量多,具体要求可以参考题目。dfs一个结点前保存询问深度的答案,访问完以后减去之前的值就得到答案了。#includeusing namespace std;c...
阅读全文
摘要:因为年历是400年一个循环节的,所以递推出一年的情况,然后递推处理出一个循环节的情况。对于询问,求一个类似前缀和的东西就好了。跑出来和比样例小一,把A和B加一以后交后AC...写得时候注意变量的定义。。。不然WA到哭。。。我是以6代表星期5的,1900年是第一年,所以B,A减去1900之前要加一。#...
阅读全文
摘要:著名的折纸问题:给你一张很大的纸,对折以后再对折,再对折……每次对折都是从右往左折,因此在折了很多次以后,原先的大纸会变成一个窄窄的纸条。现在把这个纸条沿着折纸的痕迹打开,每次都只打开“一半”,即把每个痕迹做成一个直角,那么从纸的一端沿着和纸面平行的方向看过去,会看到一条美妙的曲线。就是一个分形,规...
阅读全文
摘要:题意:给你一个HxW的矩阵,每个点是一个指令,根据指令进行一系列操作。题解:模拟#include#includeusing namespace std;const int maxn = 101;char G[maxn][maxn];int dx[] = {-1,0,1, 0};int dy[] = ...
阅读全文
摘要:题目背景是以前用来对网页进行排名的Page Rank算法,是早期Google的革命性发明。背后的原理是矩阵和图论。这个数学模型是由Google的创始人拉里·佩奇和谢尔盖·布林发现的。如果一个网页被很多网页链接那么它的排名就高,当然不同的网页应该用不同的权值加以区分,一个网页的排名来自指向它的网页权值...
阅读全文
摘要:比较坑的水题,首项前面的符号,-1,+1,只有数字项的时候要输出0。感受一下这些数据160 0 0 0 0 0 0 0 0 -10 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 0-1 0 0 0 0 0 0 0 0 0-1 -1 -1 ...
阅读全文