10.27考试总结

我要的幸福

题意是找出从1,1到n,m的一条路,有障碍不能走,只能走右边或者下边,每次走一步,求字典序最小方案

这道题当时想着用深搜结果麻烦了,而且答案错误。。。

题解:从终点开始向左边或者上边走,找出所有不能走的点,打上标记

注意vis[i][i]=vis[i+1][j]|vis[i][j+1],异或是有一则一,就是有能到达它的点,他就能走。如果周围都是0那他也不能走

再直接从1,1开始走,贪心地选取右边、下边的中的最小值,依次输出就是字典序最小值了

i&(1<<k)是看i的第k位是什么

1^(1<<k)是改变i的第k位

ksum

求一个序列前k大的子序列和,数据范围十分大

本来可以用线段树做如果数据小的话

enmmm线段树不会写蛤蛤

void Add(int x, long long val)
    {
        for(; x <= n; x += lowbit(x))   tree[x] += val;
    }

long long Query(int x)
    {
        long long ret = 0;
        for(;x ; x-= lowbit(x)) ret += tree[x];
        return ret;
    }

所以用我奇特的过点法过掉两个点得20分蛤蛤

知识漏洞很大

题解:由于是正整数组成,一个序列一定比他的子序列的和大,而且一个序列l,r可以由l-1,r或者l,r+1得到

那么用堆来维护,记录前缀和,先把前缀和放进优先队列

这个优先队列是一个结构体类型的,里面存放了这个区间的左端点,右端点,区间和

还有重载bool operator < (const Node & x,const Node  &y){

return x.sum>y.sum>

}用来排序

然后每当拿出堆顶的Node,就要把他的变形放回去,作为统一的不要出现重复,可以就把左端点加1,前缀和相应减去

奶牛喝水专用牛棚

差分和线段树都可以

差分就是在一个区间的修改次数比较多的时候派上用场

在L端加上修改值,在R+1端减去修改值,然后计算L到R的修改值的前缀和,再与原数组对应位置相加

emmmm劳资还是没懂,为什么这道题要用差分?????????????????

原文地址:https://www.cnblogs.com/SUMMER20020929/p/9863951.html

时间: 2024-08-30 00:32:01

10.27考试总结的相关文章

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46

一周随笔--15.10.27

一周新知识点记录(15.10.27) 一.不规则按钮OBShapedButton 常规按钮都是一个矩形区域,即使设置了按钮layer的cornerRadious,能响应点击事件的依旧是整个矩形区域. OBShapedButton是开源的第三方库,直接继承自UIButton,直接使用即可.它的响应区域只限定在button的图片或者背景图片区域,周围空出的区域无法响应. 二.sendActionsForControlEvents UIButton的实例方法,通过代码手动发送按钮的点击事件触发按钮的响

背水一战 Windows 10 (27) - 控件(文本类): TextBlock

原文:背水一战 Windows 10 (27) - 控件(文本类): TextBlock [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) TextBlock 示例1.TextBlock 的示例 1Controls/TextControl/TextBlockDemo1.xaml <Page x:Class="Windows10.Controls.TextControl.TextBlockDemo1" xmlns="http://

#10.4考试总结

10.4考试总结 P1017 进制转换 题目里的进制转换跟最开始做的区别就是这个权值是负数......在短除过程中可能会有各种问题..... 我想用短除就必须要解决这个负数的问题:-3/-2=2 要做到这个样子.....系统从来不会让你好过:-3%-2=-1,总会为难你一下.就需要自己想办法来解决这个问题 -m+n%m 这个样子就可以解决了.....然后题目就简单了起来.栈储存结果,或者递归输出随意就好 P1004 方格取数 没有仔细看数据范围.在认证研读了一边以后.....这.....(哔~~

#10.6考试总结

10.6考试总结 P1063 能量项链 其实是一道区间DP题.......应该并不难.就是DP做少了? 莫名不会.实际上仔细想一想就明白了.直接枚举分段点进行计算就可以了. for(int l = 1, r = x; r < n2; ++l, ++r) { for(int k = l; k < r; ++k) { f[l][r] = max_(f[l][r], f[l][k] + f[k + 1][r] + num[l] * num[r + 1] * num[k + 1]); } if(x =

10.11考试总结

10.11考试总结 全是DP实际上发现暴力也能有部分分....... 三角形牧场 DP......当时总是感觉不像啊 需要处理的就是枚举三角形边长可能出现的情况.因为周长在输入端时候就可以确定了,所以只需要通过枚举两条边就可以强行算出第三条边..... 所以就省空间+时间.... f[0][0] = 1; for (int i=1; i<=n; ++i) for(int j=half; j>=0; j--) for(int k=j; k>=0; k--) if(j >= d[i]

10.23 考试总结

10.23 考试总结 救火行动 不得不说还是想问候一下出题人的,那个白色的字是什么鬼.....不过看到了不要喧哗倒是很有意思 所以就是一个大模拟题.....因为比较麻烦,只不过数据很小,纯模拟循环都可以过的说. 考试的时候没有注意到一个点就是可以直接灭火的时候当前这一轮是不算这层着火的,也就是说第五层的火势应该只涨i-1 稍微注意一下这个就可以了,然后就还好,其余的还是都有好好注意到的 打篮球 这个题目我是考试的时候一下没有相同怎么建图....实际上暴力枚举各种参数就可以了. 然后就是纯最短最长

10.25 考试总结

10.25 考试总结 距离退役死亡越来越近. circle 其实只要暴力查找就可以了 搜索跑图,稍微注意一下不要让法师反复横跳就可以了,多加一个数据就可以解决只要一找到已经访问过的就证明是环了.... 开始想复杂了,以为可能有一个奇葩的图....原来就是一个简单的环啊 path 其实就是找必经之路,把一些可以多选择的....缩点,实际上就是tarjan缩点, 然后找桥. 桥就是我们要的必经之路 然后又要去学tarjan.....模板一下背不下来 mst 首先用prim 作出最小生成树.然后考虑修

10.29 考试总结

10.29 考试总结 a 咋一看是暴力跑循环,实际上还是暴力循环.只不过根据题目意思,实际上公式\(f(x) + x = n\)而这个f(x)就是x各个位的和.大概脑补一下还是能算出来f(x)最大也就是9*位数就可以将整体的循环控制在几千...... b 设\(dp[i][j][k][0/1]\) 表示当前字符串s 到了第i 位,字符串t 到了第j 位,目前一共 选出了k 个子串,s[i] 与t[j] 是否都被选择的最大长度. 考虑s[i] 与t[j] ,如果我们不将它们加入选择的k 个子串,那