OI中坑点总结】的更多相关文章

以下是我个人OI生涯中遇到的坑点的一个小总结,可能是我太菜了,总是掉坑里,请大佬勿喷 1,多重背包的转移的循环顺序 //默认每个物品体积为一(不想打码……) //dp[i]表示占用背包容量i所能获得的最大价值 ;i<=n;i++) ;j--) //sum表示背包最大容量 ;k<=num;k++) //num表示这个物品的数量,k表示选取当前物品k件 if(j>=k) dp[j]=min(dp[j],dp[j-k]+value); 简单的多重背包模板,对于学过的人,大概清晰易懂吧 //dp…
分治虽然是基本思想,但是OI中不会出裸分治让你一眼看出来,往往都是结合到找规律里面. 先来个简单的: 奇妙变换 (magic.pas/c/cpp) [问题描述]   为了奖励牛牛同学帮妈妈解决了大写中文数字的问题,牛牛妈妈特地抽出一个周末的时间带着牛牛来到梦幻儿童乐园游玩.   在游乐园,牛牛看到了一个非常有意思的游戏:游戏一开始,电脑屏幕上只有一个序列“A”,而后的每一次变化都把序列中的“A”变成“AB”,“B”变成“A”.游戏一直继续„„,最后屏幕上得到了序列“ABAABABAABAABAB…
前言 矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中,矩阵的运算是数值分析领域的重要问题. 基本介绍 (该部分为入门向,非入门选手可以跳过) 由 m行n列元素排列成的矩形阵列.矩阵里的元素可以是数字.符号或数学式. 比如一个$m\times n$的矩阵可以表示为: $$ A=\begin{bmatrix}a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\…
OI中常犯的傻逼错误总结 问题 解决方案 文件名出错,包括文件夹,程序文件名,输入输出文件名  复制pdf的名字  没有去掉调试信息  调试时在后面加个显眼的标记  数组开小,超过定义大小,maxn/maxm搞错? 注意要开双向边的,状态1<<x,相同大小的数组开一起,不要小敲一个0  inf开小/大  极限数据验证 多组数据部分变量容易忘记清空  有多组数据一定要认真查看每一个参与的变量是否需要清空 if后面加分号   不要急  DP.贪心之类的题,最好要拍一拍,不要过度自信  对拍很重要!…
序言 这本来是用Word写的,但是后来我换了系统所以只能用markdown迁移然后写了...... $\qquad$本文主要投食给那些在Windows下活了很久然后考试时发现需要用命令行来操作时困惑万分以及觉得GDB很好吃的人 $\qquad$以及---- $\qquad$经常眼瞎看不见i++和j++的区别 $\qquad$经常访问a[-1]然而使编译器无可奈何(除非在使用O2的情况下的明显访问越界)的人 ... $\qquad$正式地说,本文介绍GCC&&GDB命令在OI中的应用. 提要…
OI中的莫比乌斯反演 莫比乌斯函数 想要学习莫比乌斯反演,首先要学习莫比乌斯函数. 定义 莫比乌斯函数用\(\mu(x)\)表示.如果\(x\)是\(k\)个不同质数的积,则\(\mu(x) = (-1)^k\),否则\(\mu(x) = 0\)(此时\(x\)一定是某个或某些平方数的倍数).\(x = 1\)时,相当于\(x\)由\(0\)个不同质数组成,所以\(\mu(1) = 1\). \[ \mu(x)=\left\{ \begin{array}{rcl} 1 & & {x = 1…
在OI中,题目有三类: 传统题 交互题 提交答案题 今天来了解一下第三类 概述 传统题:给你一个题面,你需要交一个程序,评测姬会用你的程序运行你看不到的一些测试点,用输出和正确答案比较 提交答案题:给你一个题面,把一堆输入也给你发下来,你通过各种玄学把输出算出来,再把输出交上去. 一般还会发一个checker来帮助你测试分数 有时还会把题目原来的游戏发下来供你颓废理解题意 为什么有这种题 我们可以猜想一下: 评测姬可能一时半会儿跑不出来 可能一个程序解决不了 可能要让你知道输入你才做得出来 特点…
OI中组合数的若干求法与CRT 只是下决心整理一下子呢~ 说明:本篇文章采用\(\binom{a}{b}\)而不是\(C_{a}^b\),以\(p\)指代模数,\(fac_i\)指代\(i!\),\(inv_i\)指代\(i\)在\(\mod p\)下的逆元,\(invf_i\)指代\(i!\)在\(\mod p\)下的逆元. 一般性的组合数求法 计算式: \[\binom{m}{n}=\frac{m!}{n!\times (m-n)!}\] 一. 杨辉三角法 \[\binom{m}{n}=\b…
OI中字符串读入和处理 在NOIP的"大模拟"题中,往往要对字符串进行读入并处理,这些字符串有可能包含空格并以\n作为分割,传统的cin >> scanf() 等等,不可能达到要求,因为这些都是以\n space (空格) \t (Tab) \r 作为分割符. 通用处理方法 所以要处理字符串输入时,要以getline()作为输入,输入后构造为[字符串流],然后可以进行[分割]后进行任意处理.这是比较通用的做法,几乎可以适应所有情况. #include<vector&g…
众所周知,OI中其实就是算法竞赛,所以时间复杂度非常重要,一个是否优秀的算法或许就决定了人生,而在大多数情况下,我们想出的算法或许并不那么尽如人意,所以这时候就需要一中神奇的的东西,就是底层优化: 其实底层优化比较简单,比如我们经常使用的 register还有快读,这些都可以进行优化.还有fread,但是fread在一些情况(尤其是在重要的的比赛时)但是还是给出下面的优化 <<|; char buffer[L],*S,*T; #define getchar() ((S==T&&…