随笔分类 - 思维
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你一个数组A[]经过a[i][j] = gcd(A[i],A[j])的规则生成的二维数组 让你求出原数组A 【题解】 我们假设原数组是A 然后让A数组满足A[i] 【代码】 cpp import java.io. ; import java.util.
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 长度为n的一个序列,其中有一些部分可能是空的,一些部分是长度为a的物品的一部分 (总共有k个长度为a的物品,一个放在位置i长度为a的物品会占据i,i+1,....i+a 1这a个格子 (物品之间必须要有至少一个空格,不能相邻 现在有一个人猜了m个不同的位
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 如果任意行之间可以重新排序。 问你最大的全是1的子矩阵中1的个数 【题解】 设cnt[i][j] 表示(i,j)这个点往右连续的1的个数 我们枚举列j 然后对于第j列的cnt[1..n][j] 我们把这n个数字排个序(升序) 然后顺序枚举这n个数字 假设
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你从一个集合中找出来一个子集 使得这个子集中任意两个数相减的绝对值是2^的整数次幂 且集合的大小最大 【题解】 考虑子集的个数为4个或4个以上 那么我们找到最小的4个a[1],a[2],a[3],a[4] 显然 dis(1,2)=2^a dis(2,3
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你判断一个序列是否可能为一个bfs的序列 【题解】 先dfs出来每一层有多少个点,以及每个点是属于哪一层的。 每一层的bfs如果有先后顺序的话,下一层的节点的出队也是有先后顺序的 因此x是当前层只是一个简单的判断条件,还需要更深入的判断 也就是说它是不
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 你可以往左最多x次,往右最多y次 问你从x,y出发最多能到达多少个格子 只能往上下左右四个方向走到没有障碍的格子 【题解】 假设我们从(r,c)出发想要到固定某个点(i,j)的最短距离 我们设x0为向左走动的次数,y0为向右走动的次数 显然(j c)=y
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 如果a[i] 2 【题解】 假设最后的方案是(ai,bi) 这里(ai,bi)表示下标为ai的袋鼠可以装进下标为bi的袋鼠里面 (这里袋鼠已经按照大小从小到大排序了) 则我们会发现,如果有(a1,b1),(a2,b2)...(ak,bk)这些方案的话(且
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 每轮游戏都要有一个人当裁判,其余n 1个人当玩家 给出每个人想当玩家的次数ai 请你求出所需要最少的玩游戏的轮数 使得每个人都能满足他们当玩家的要求. 【题解】 【代码】 cpp import java.io. ; import java.util. ;
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你根据冒泡排序的规则 建立一张图 问你这张图的最大独立子集的大小 【题解】 考虑a[i]会和哪些点连边? 必然是在a[i]左边且比它大的数字以及在a[i]右边比它小的数字 (根据冒泡排序的原理) 所以如果选择了a[i]就不能再选择它左边比它大的数字或者
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 两个人,一个人在左上角,一个人在左下角。 左上角要到右下角去 左下角要到右上角去 只能走到相邻的格子(不能往回走,即一个往右下,一个往右上走) 要求这两个人必须要在这个n m的格子中选择一个格子作为休息点. (两条路径只能有一个一样的点) 问最多能拿到多
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你一个字符串s 让你从中选出来一个字符串t 这个字符串t是s的前缀和后缀 且在除了前缀和后缀之外的中间部位出现过。 且要求t的长度最长。 让你输出这个字符串t 【题解】 KMP的应用 f[i]就是以i为结尾的后缀能匹配的最长前缀的长度 因此只要知道f[
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 横坐标1..2^n对应着2^n个复仇者的基地,上面有k个复仇者(位置依次给出)。 你是灭霸你要用以下方法消灭这k个复仇者: 一开始你获取整个区间[1..2^n] 假设你当前获取的区间为[l,r] mid = (l+r)/2 那么你每次有两种选择 1.将整
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 你可以把c[i]改成c[i+1]+c[i 1] c[i] (2 【题解】 cpp import java.io. ; import java.util. ; //code start from here / d[i] = c[i+1] c[i]; (1
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你k个红包,每个红包可以在si..ti的时间范围内拿走。 抢完红包之后你得到wi元,然后你需要在di+1时刻才能继续抢红包 时间是线性的从1..n 然后某个人可以阻止你在x时刻抢红包,然后你的时间跳过1s( 1s)直接到达x+1时刻. 这个人可以阻止你
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你遍历n个节点,访问过的节点不操作。 如果是没有访问过的点,那就把它加到序列的末尾. 问你形成的最小字典序的序列是多少。 【题解】 显然每次找最小的标号 用一个集合维护当前能够到达的最小标号 一开始集合里面只有1 然后每次取出来最小的节点然后到达那个节
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 序列中不能连续出现k1个以上的1以及不能连续出现k2个以上的2,然后一共有n1个1以及n2和2,要求这n1+n2个数字都出现. 问序列有多少种可能. 【题解】 这题其实可以转化一下思路。 看成是两个人在轮流给空串后面添加1,2字符串。 第一个人添的是重复
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给你一个长度为4的数字序列(每个数字都在0~9之间,且不重复出现) 现在让你猜这个长度为4的序列是什么. 猜了之后对方会告诉有几个数字是位置和数字都正确的(猜的数字序列有顺序) 以及有几个数字是数字出现了但是位置不正确. 即给你两个反馈。 现在给你n个猜
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 因为只会增加。 所以。 一开始暴力算出来初始答案 每次改变一个点的话。 就只需要看看和他相邻的数字的值就好。 看看他们是不是大于l 分情况增加、减少答案就好 【代码】
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 题解的作者: "manish_joshi" 对于任意一个k 因为那条直线(关于x,y的方程可以看出一条直线)的斜率 = 所以肯定会经过第一象限。 因此总是能得到一个k1,k2 =0 连续的1的起点尽可能接近。 【代码】 cpp include 
        阅读全文
                
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 如果|x|+|y| n 显然。从(0,0)根本就没法到(x,y) 但|x|+|y| 【代码】
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号