摘要:
https://vijos.org/p/1770不重不漏地设计状态才能正确的计数QAQ虽然可能最优化是正确的,但是不能保证状态不相交就是作死。。。。之前设的状态错了。。。应该设f[i][0]表示i点不取且至少有一个儿子取,且保证i点被覆盖f[i][1]表示i点取儿子任意,且保证i点被覆盖f[i][2... 阅读全文
摘要:
写了那么多模拟题这题算是最难的了QAQ好神,,,我于是补了一下并查集。。并查集很神。。。。。。orz种类并查集。。。orz对于维护sat,我们可以这样想:如果x和y的xor是true,那么x和y肯定不一样,那么我们有s[x]=s[y]^1否则s[x]=s[y]我们需要维护的是一系列的x和y之间的关系... 阅读全文
摘要:
http://new.tyvj.cn/p/2065我就不说我很sb的用线段树来维护值。。。。。。本机自测的时候想了老半天没想出怎么维护点在所有区间被多少区间包含的方法。最后一小时才想出来线段树(果然太弱)。。首先想到贪心,答案一定是某个区间的右端点。。。(这个很容易想也容易证,我就不说了。。。。。)... 阅读全文
摘要:
来源:Violet_II T1好神的一题,我竟然没做出来QAQ首先我们发现,答案是sigma(x[i]*x[j], i>j)+sigma(y[i]*y[j], i>j)。显然只需要讨论左边的就行了,右边就可以同理了。我们发现sigma(x[i]*x[j], i>j)=(sigma(x[i])^2-s... 阅读全文
摘要:
http://poj.org/problem?id=2947各种逗啊。。还好1a了。。题意我就不说了,百度一大把。转换为mod的方程组,即(x[1,1]*a[1])+(x[1,2]*a[2])+...+(x[1,n]*a[n])=x[1, n+1] (mod m)(x[2,1]*a[1])+(x[2... 阅读全文
摘要:
http://poj.org/problem?id=1830高斯消元无解的条件:当存在非法的左式=0而右式不等于0的情况,即为非法。这个可以在消元后,对没有使用过的方程验证是否右式不等于0(此时因为前边消元一定会使得后边的方程左式为0)高斯消元自由变元:自由变元就是当这些未知量一旦确定,整个方程就确... 阅读全文
摘要:
http://poj.org/problem?id=1222竟然我理解了两天。。。。。首先先来了解异或方程组(或者说mod2方程组,modk的话貌似可以这样拓展出来)对于一些我们需要求出的变量a[1~n],我们现在知道n个方程组(有解的情况下),每个方程均是类似原版消元那样带了个系数的,只不过这个系... 阅读全文
摘要:
http://www.lydsy.com/JudgeOnline/problem.php?id=1013只要列出方程组就能套高斯来解了。显然距离相等,所以开不开平方都无所谓。b表示圆心,可列sigma((x[i][j]-b[j])^2)=sigma((x[i+1][j]-b[j])^2)化简得sig... 阅读全文
摘要:
http://www.lydsy.com/JudgeOnline/problem.php?id=3301其实这一题很早就a过了,但是那时候看题解写完也是似懂非懂的。。。。听zyf神犇说是康托展开,然后拖到今天才来看看。。。sad。。从不知道那里来的文档里边抄的:康托展开就是一种特殊的哈希函数,它的使... 阅读全文
摘要:
https://vijos.org/p/1729这题好奇葩,为嘛N开到30就会re啊。。。。。。。。。。n#include #include #include #include #include #include using namespace std;#define rep(i, n) for(i... 阅读全文
摘要:
https://vijos.org/p/1746这题就是水题。裸的跑完每个点的最短路后直接可以暴力出解。。这题贴出来是因为我改了下我的dijkstra的模板。。。(其实是原来一直写错了233注意vis不要提前加。否则你懂的。。#include #include #include #include #... 阅读全文
摘要:
https://vijos.org/p/1750是不是我想复杂了。。。。自己yy了个二维线段树,然后愉快的敲打。但是wa了两法。。。。。。。sad原因是在处理第二维的更新出现了个小问题,sad。void pushup1(int x) { for1(i, 1, mm#include #include ... 阅读全文
摘要:
https://vijos.org/p/1757有时候自己sb真的是不好说。。。我竟然想了半天都没想到这个转移。我是有多傻。。。。我们设f[i][j]表示1~i的排列且逆序对恰好是j的方案数。显然我们只需要将i放进i-1排列中就行了。而且发现i始终大于i-1那么就好做了,我们只要将所有i放到i-1序... 阅读全文
摘要:
特开此博文:1、数组开小2、没开long long(隐式转换那里)3、没有每一步都取mod4、引用的是下标而不是数组+下标(主席树那里错过两次啊)5、全局变量和局部变量搞混(*maxlonglong)6、bfs的判重要每一次转移一个状态就要设置好啊QAQ7、double转整数一定要注意是否超int范... 阅读全文
摘要:
https://vijos.org/p/1764自从心态好了很多后,做题的确很轻松。这种题直接考虑我当前拿了一个,剩余空间最大能拿多少即可。显然我们枚举每一个点拿出一个矩形(这个点作为右下角),然后剩余空间我们只需要考虑i+1~n和j+1~m这一块空间即可(至于为什么多想想QAQ)所以我们维护i+1... 阅读全文
摘要:
https://vijos.org/p/1764首先第一个虫洞一定是建在1号点。证明如下:假设一个虫洞在a,一个在b,a#include #include #include #include #include #include using namespace std;#define rep(i, n... 阅读全文
摘要:
https://vijos.org/p/1765这题用白书的方法是n^2的,所以我tle了一个点。。sad。我稍微优化了一下。这个题给我最大的感受不是这个题本身,而是我感受到了自己思考以后并认真查错一次提交获得这么高分的感受。做题一定要认真、仔细。写这些题最重要的就是仔细,一些细节方面没处理好,那么... 阅读全文
摘要:
信息学之于其他竞赛学科的不同,就在于需要通过写程序来表达自己的思维和想法。如何尽可能又快又好地调试程序,成了我们必须要思考的问题。相信很多同学都有过这样的经历:思考一个算法只花了半个小时,但是把这个算法写对却花了一天。。思考与实现的时间往往不成正比。下面是我结合自己的经验给出的一些小建议,仅供大家参... 阅读全文
摘要:
https://vijos.org/p/1791暴力的话只想到bfs,然后估计是状态超了才得20分。噗,为啥暴力就不能想得简单点QAQ。。。。。这种思想很好啊。这一题我看了题解后不得不说我竟然没想到。。为啥要bfs。。这种找路径的依赖前边状态的不需要bfs啊!因为bfs是无限拓展的,状态很大,本题又... 阅读全文
摘要:
https://vijos.org/p/1769啊,割边写挫了害得我交了那么多发。。。本题多想想就出来了。。首先求出割边,显然关键边就在割边上。求完割边后,我们先从一个点dfs,维护A的点数和B的点数及深度。那么显然如果割边的深度大的点的A或者B是0或者是K和L,那么显然这是条关键边。。割边不要写错... 阅读全文