CF 15/09/23】的更多相关文章

CF580A 给出一个数列,求最长不下降子序列(连续) 直接DP,O(n) CF580B 主人公有n个朋友,每一个朋友有2个属性:m,sat 现在他想邀请部分朋友,邀请的人满足MAX_M-MIN_M<d的条件下,使得sat之和最大 排序,前缀和,枚举左端点,二分右端点 O(NlogN) #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define ll…
总结 Date 2017.09.23 <1>统计数字 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果. 思路1:桶排序(但数字范围过大,舍) 思路2:自带排序函数(包含头文件#include< algorithm >) 具体代码: sort(a,a+n); int k = 0; for(int i = 0;i<n;i++) {…
(1)今天做了什么: (2)明天准备做什么? (3)遇到的问题,如何解决? 学习数组,编写了一个随机选牌的代码.自己最开始一直想只设置一个字符串数组,利用随机数来输出,但那样对字符串赋值会比较麻烦.可能改成二维数组来赋值会好一点.书上采用了整型数组来控制选牌,我如果用随机数,就会有重复的问题.所以数组很好的一个地方就体现出来了,就是可以存储,利用存储的数字,就避免了重复的问题!我认为这个点很重要.另外为花色定义一个数组,为牌的大小再定义一个数组是我没有想到的!这种可以组合信息来表示现实中的一个信…
C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函数内定义的静态变量(共享) 4.返回全局变量   ******************以下摘自csdn******************************   其实就是要返回一个有效的指针,尾部变量退出后就无效了.…
写了3小时 = =.这两天堕落了,昨天也刷了一晚上hihocoder比赛,还爆了零.之后得节制点了,好好准备考研.. 首先很容易想到 压缩数据 + 线段树 然后对于Pushdown真很难写..需要牵涉到状态修改(所以我又写了一个adjust函数,辅助修改) 我一直跪在test7,因为3号修改在一开始就会出现cover符号的修改,我一开始没有加(比方说1-4都是0,现在 做3 1 4,直接吧1-4的状态改为1就行了) #include <cstdio> #include <cstdlib&…
以前写过类似的东西,用来自动生成数据. 你可以将 Stored Procedure 理解为可以重复使用的批处理文件. Stored Procedure 非常有用,我们应该尽可能地去使用它. 那么,应用 Stored Procedure 有什么好处呢? 封装过程,简化复杂的操作 代码重用.共用,所有人都用同一个存储过程,减少出错的可能 简化变更管理,如果业务逻辑发生改变,修改存储过程就可以了,上层软件甚至不需要知道发生了什么改变. 提高性能,存储过程比单条执行要快 MySQL 语言让存储过程更加强…
传送门 考试的时候卡了一会儿. 显然这个答案只跟二进制位为1的数量有关. 还有一个显然的结论. 对于一个区间[l,r][l,r][l,r],如果其中单个数二进制位为1的数量最大值不到区间所有数二进制位为1的数量之和的一半即maxn∗2≤summaxn*2\le summaxn∗2≤sum,并且sum是偶数那么这个区间是好的. 继续考虑,如果我们枚举左端点l和右端点r,那么当sum[r0]−sum[l−1]≥64sum[r_0]-sum[l-1]\ge 64sum[r0​]−sum[l−1]≥64…
传送门 今天的签到题. 有一个很显然的结论,gcd(n∗m,k)≤2gcd(n*m,k)\le 2gcd(n∗m,k)≤2. 本蒟蒻是用的行列式求三角形面积证明的. 如果满足这个条件,就可以直接构造出一个满足限制的直角三角形了. 代码: #include<bits/stdc++.h> #define ll long long using namespace std; inline ll read(){ ll ans=0; char ch=getchar(); while(!isdigit(ch…
传送门 一道挺有意思的贪心. 从1到n依次满足条件. 注意要特判第一个数已经大于x的情况. 但是如何贪心吃呢? 如果靠左的数没有越界,我们吃靠右的数. 原因是下一次靠右的数就会成为靠左的数,相当于多贡献了一次. 然后貌似要开long long 代码: #include<bits/stdc++.h> #define N 100005 #define ll long long using namespace std; ll a[N],x,ans=0; int n; inline ll read()…
传送门 一道神奇的期望状压dp. 用f[i][j]f[i][j]f[i][j]表示目前在第i轮已选取物品状态为j,从现在到第k轮能得到的最大贡献. 如果我们从前向后推有可能会遇到不合法的情况. 所以我们从后向前推. 这时怎么处理不合法的情况呢? 如果当前这个状态不具备选择k的条件. 那么说明第i+1轮可能具备. 于是f[i][j]+=f[i+1][j]f[i][j]+=f[i+1][j]f[i][j]+=f[i+1][j] 否则当前具备选k的条件. 所以要么当前轮不选,要么选了从f[i+1][j…