随笔分类 - 校内互测
摘要:【题解】【树形dp】【其实这道题说起来很简单,用四个数组:d1、d0、u0、u1分别表示从当前点向下更新,不返回;从当前点向下更新再回到当前点;从当前点向上更新回到当前点;从当前点向上更新不返回。用两遍dfs求出这四个数组】【实现起来细节会比较多,耐心处理】#incl...
阅读全文
摘要:【题解】【找规律+辗转相除】【通过按照题目给出的产生数的方法可以发现:这是大名鼎鼎的更相减损之术!】【更相减损之术是古人用来求最大公约数的方法,其实质与我们平时常用的辗转相除其实是一样的。那么,我们用辗转相除代替更相减损即可。】【这样,我们每进行一次,就会产生一个新的...
阅读全文
摘要:光【问题描述】 天猫有一个长方形盒子,长宽分别为 A,B。这个长方形盒子的内壁全部是镜面。天猫在这个盒子的左下方放了一个激光灯。这个灯可以照向盒子内的任意角度。现在天猫想要打开这个激光灯,但是他想让光线按照如下规则照射: 1.这束光必须恰好打到盒子...
阅读全文
摘要:【题解】【线性筛+贪心】【通过分析题意我们能够得出:分解数为当前最小公倍数的质因数个数-1。】【先用线性筛筛出10^7内的质数,同时记录10^7内的每个数的最小质因子,然后把每个数分解质因数,并存下来。】【枚举有>=k个不同质因数的区间,枚举区间的右端点,维护左端点的...
阅读全文
摘要:【题解】【贪心】【把店按照ai-bi从小到大排序,然后每个店不断兑换直到不能换为止。假如先选了ai-bi大的,后选了 ai-bi小的,那么把前面的换成后面的,剩下的瓶子更多。ai-bi相等的顺序随便,因为总能把ai 最小的选满】【由于范围很大,所以要用无符号整型,所以...
阅读全文
摘要:2541: [Ctsc2000]冰原探险Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 39 Solved: 25[Submit][Status][Discuss]Description传说中,南极有一片广阔的冰原,在冰...
阅读全文
摘要:【题解】【lca】【一眼lca,然后、然后各种漏情况。。。】【通过分析题目,我们要先找使到两个点的距离相等的在它们最短路径上的那一点grf。这样,我们就要先通过找两个点的lca,求出两个点之间的最短路径len,并判断grf的大致位置】[Part 1]【如果两个点的深度...
阅读全文
摘要:【题解】【递推】【这道题,其实十分的简单(NOIPday1 t1嘛 哎呀呀)】【首先找出在初始情况下(即不改变任一元素的值)每一条上升子序列的长度,把当前这个子串的起始元素和结束元素存一下】【枚举相邻的两个子串,看是否能连在一起,即查看改变当前串的起始元素或改变上一个...
阅读全文
摘要:Problem A: [noip2016十连测第八场]神炎皇Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 25 Solved: 10[Submit][Status][Web Board]Description神炎皇乌...
阅读全文
摘要:【题解】【二分答案+贪心+dp】【第一问很显然是二分答案+判定,二分可能的最长一天的最小值,然后贪心的判断(尽量往一天里放,放不开再放到下一天)是否能在m+1天内打完】【第二问是一个求方案总数的dp,O(n³)是一个水dp,f[i][j]表示第i天打完j局的方案数】【...
阅读全文
摘要:【题解】【dp】【f[i][j]表示以i为结尾,j为公差的子序列个数】【要注意有负数,所以将公差+1000】#include#include#includeusing namespace std;int const p=9901;int f[1010][2010],n...
阅读全文
摘要:【题解】【递推】【约瑟夫问题。】【考虑每次去掉一个人后都重新编号,把编号改为[0,n)来计算,那么,最后剩下的那个数的当前编号一定为0,倒推,那么上一轮当前点的编号为(n-i+1+x)%i,这样可以一直推会到第一轮。复杂度为O(N)】#include#include#...
阅读全文
摘要:【题解】【模拟】【将序列读入、排序、去重,枚举查找原序列dream中的每一元素在已处理好的序列tm中的位置,并判断tm中的前一个元素加当前元素mod大质数后是否等于tm中的后一个元素(tm是一个环)】#include#include#includeusing name...
阅读全文
摘要:掷骰子(dice.cpp)【问题描述】 太郎和一只兔子正在玩一个掷骰子的游戏。有一个N个格子的长条棋盘,太郎和兔子轮流掷一个M面的骰子,骰子M面分别是1到M的数字,且掷到每一面的概率是相同的,掷到几,就往前走几步,当谁走到第N格时,谁就获胜了。游戏中还有一个规则...
阅读全文
摘要:独眼兔(aneye.cpp)【问题描述】 太郎有一只特殊的兔子,他只有一只左眼,所以当他移动时是不能向右移动的。一天,太郎跟独眼兔做一个游戏,太郎在平面内放了N个萝卜,每个萝卜有一个坐标(xi,yi),且任意两个萝卜不在同一位置。设萝卜A(xi,yi)的yi是所有萝...
阅读全文
摘要:求和【题目描述】求:1b+2b+3b+…+ab的和除以10000的余数。 【输入文件】 第一行一个正整数N,表示共有N组测试数据; 接下来N行,每行两个正整数a和b。 【输出文件】 共N行,每行一个对应的答案。 【样例输入】 1 2 ...
阅读全文
摘要:【题解】【最短路】【这道题,明显就是最短路嘛,但是要处理等待时间】【首先,将每条边拆成两条有向边来存储,用0、1来表示正向边和反向边,每条边还需记录边权(即通过所需的时间)和路径序...
阅读全文
摘要:邮递员送信【题目描述】 有一个邮递员要送东西,邮局在结点1。他总共要送N-1样东西,其目的地分别是2-N。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共M条道路,通过每条道路需要一定的时间。这个邮递员每次只能带一样东西。求送完这N-1样东西并且最终回到...
阅读全文
摘要:敲砖块【题目描述】 在一个凹槽中放置了N层砖块,最上面的一层油N块砖,从上到下每层一次减少一块砖。每块砖都有一个分支,敲掉这块砖就能得到相应的分值,如图所示。 如果你想敲掉第i层的第j块砖的话,若i=1,你可以直接敲掉它;若i>1,则你必须先敲掉第i-1层的第j...
阅读全文
摘要:中位数(median.cpp)【题目描述】 有一个长度为N的数列{A1,A2,...An},这N和数字恰好是1..N的一个排列。你需要统计有多少个子序列{Ai,Ai+1,...Aj}满足:i#include#includeusing namespace std;...
阅读全文