cf B. Maximum Absurdity】的更多相关文章

http://codeforces.com/contest/332/problem/B #include <cstdio> #include <cstring> #include <algorithm> #define maxn 200010 using namespace std; int a[maxn]; long long sum[maxn]; long long max1; int main() { int n,k; scanf("%d%d"…
B. Maximum Submatrix 2 time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output You are given a matrix consisting of digits zero and one, its size is n × m. You are allowed to rearrange its rows. W…
题目链接:http://codeforces.com/contest/332/problem/B 题意:在一个序列中,在所有长度为k的区间里找出两个不重叠的最大和,输出这两个最大和所对应的开头的位置a和b. 一开始没有想到用dp来做,于是有了以下的错误思路(读者可以忽略):声明一个结构体,包括head(保存起始点).tail(保存结束点)还有sum(保存长度为k的区间的和).计算出整个序列所有k个小区间的和sum,按sum从大到小排序(隐含的弊端:排序会导致区间与区间之间起始点和结束点的位置很不…
http://codeforces.com/contest/376/problem/D 题意:给你一个矩阵,可以随意排列n行的次序,然后找出全部含有1的子矩阵.输出1的个数. 思路:c[i][j]表示在i列第j行的格子的右边连续的1的个数.对于每一列,排序c[i],然后比较c[i][j]*(n-j+1)与max1的大小,max1就是答案. #include <cstdio> #include <iostream> #include <cstring> #include…
一道比较套路的题,看到数据范围就差不多有想法了吧. 题目大意:给一个数列和\(m\),在数列任选若干个数,使得他们的和对\(m\)取模后最大 取膜最大,好像不能DP/贪心/玄学乱搞啊.\(n\le35\)?果断meet in middle 考虑我们已经搜出了序列前一半的解,那么怎么根据后面的结果合并出结果? 设我们现在得到的和为\(x\)(对\(m\)取膜后),我们令一个数\(y=m-x\),然后在前面的解中查找\(y\)的前驱即可 接下来进行简单的证明: 若可以找到前驱\(z\),由于\(z<…
题目链接:http://codeforces.com/problemset/problem/332/B 题目大意:给你n个数和一个整数k,要求找到不相交的两个长度为k的区间,使得区间和最大,输出这两个区间的起点.解题思路:先计算前缀和,然后预处理出maxsum[i],maxsum[i]记录i~n最大的长度为k子段的和.然后再去枚举即可. #include<cstdio> #include<iostream> #include<algorithm> #include<…
题目:http://codeforces.com/contest/888/problem/E 一看就是折半搜索?……然后排序双指针. 两个<m的数加起来如果>=m,一定不会更新答案.因为-m后的值比原来的两个数都小(a+b-m<a+m-m),不如它们去加0: 而如果两个数加起来<m,值比它们都大,可能更新答案. #include<iostream> #include<cstdio> #include<cstring> #include<al…
题目:http://codeforces.com/contest/1182/problem/F 注意有绝对值. 那么就是 k*p 对 q 取模,找最接近 \(\frac{q}{2}\) 的结果. 也就是 2*k*p 对 2*q 取模,找最接近 q 的结果. 一个二元组,第一维表示 %2q 后与 q 的距离,第二维表示自己的 编号. 对 n 个二元组排序太花时间. 令 \( g(x) = 2*p*x mod (2*q) \) 把 n 分块,只排序第一个块里的元素.因为 \( g(x+y) = g(…
天呢,好神奇的一个DP23333%%%%% 因为1.向左走1格的话相当于当前列和向左走列全选 2.想做走超过1的话可以有上下走替代.而且只能在相邻行向左. 全选的情况只能从第1行和第3行转移,相反全选的情况也只能转移到第1行和第3行. (大雾,DP太玄乎了,不是很懂2333) #include<bits/stdc++.h> #define LL long long #define N 100005 #define lowbit(x) x&(-x) using namespace std…
题目链接:http://codeforces.com/problemset/problem/363/B 题目意思:给定整数n和k,需要从n个数中找出连续的k个数之和最小,输出这连续的k个数中的第一个数的下标. 直接暴力果断TLE,于是想到之前做的那条332B - Maximum Absurdity DP题的做法,决定开多一个额外的数组b[],在输入的时候把a[i]中前i个数的和都记录到b[i]中,这样通过b[i] - b[i-k]即可得出序列h1, h2, ..., hn (1 ≤ hi ≤ 1…
I know,this is another failure.It seems like that failure is a habit with me.This time I solved two problems like last time,with a rank of 800+. A. Down the Hatch!time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutput…
DP 1CF1101D 我们发现,最终答案一定和质因数有关 我们发现\(w_i <= 2*10^5\)级别的树,他的素因子的个数不会非常多(\(<=10\)) 然后我们就设 gcd是\(dp_{u,v}\)表示\(u\)节点的第\(v\)个素因子的倍数答案 很明显答案只能从相同的质因子去转移 \[ dp_{u,v} = \max_{p_v = p_{v'}}{(dp_{son_u,v'})} + 1 \] 每次合并子树时利用dp数组更新ans就好了 2 CF1039D 很明显,当\(k >…
A. Little Pony and Expected Maximum time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Twilight Sparkle was playing Ludo with her friends Rainbow Dash, Apple Jack and Flutter Shy. But she kept…
B. Maximum Sum of Digits time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output You are given a positive integer nn. Let S(x)S(x) be sum of digits in base 10 representation of xx, for example, S(…
C. Little Girl and Maximum Sum time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output The little girl loves the problems on array queries very much. One day she came across a rather well-known proble…
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; ]; ]; ]; ]; int main() { int i,n; while(scanf("%d",&n)!=EOF) { memset(tmp,,sizeof(tmp)); memset(x,,sizeof(x)); memset(dp,,sizeof(dp)); memset(c,,…
http://codeforces.com/contest/353/problem/C 先预处理前i个数的和,然后找到第一个出现的1,然后变成0后的和与目前的和比较,如果大就更新. #include <cstdio> #include <cstring> #include <algorithm> #define maxn 100010 using namespace std; int n; int a[maxn]; int sum[maxn]; char str[max…
~~~题面~~~ 题解: 观察到拼接后的数据范围过大,无法O(n)解决,但是大区间是由很多小区间组成,而小区间是固定的,不会变化,所以可以考虑预处理出每个小区间的信息,然后根据给定序列按顺序一步一步合并区间信息. 跟线段树维护区间最大子段和类似,要合并2个区间我们只需要知道如下信息: 前缀最大子段和,后缀最大子段和,当前区间最大子段和. 那么转移方式如下: 1,对于区间最大子段和而言,要么是继承2个区间中的某个最大子段和,要么是用上一个区间的后缀最大子段和+后一个区间的前缀最大子段和凑成一个子段…
---题面--- 题解: 感觉还是比较妙的,复杂度看上去很高(其实也很高),但是因为n只有100,所以还是可以过的. 考虑一个很暴力的状态f[i][j][x][y]表示考虑取区间i ~ j的方格,左右端点颜色分别是x, y.的最大值. 那么有如下转移 1,直接继承子区间的答案 f[i][j][x][y] = max(f[i][k][x][y], f[k + 1][j][x][y]);//因为子区间就这2种,毕竟子区间一定比当前区间小,因此不靠在端点上的区间一定已经被靠在端点上的区间给取过max了…
题意: 给出n项的数列A[ ], q个询问, 询问 [ l, r ] 之间项的和. 求A的全排列中该和的最大值. 思路: 记录所有询问, 利用差分数列qd[ ], 标记第 i 项被询问的次数( 每次区间增1 ). 最后对qd, A 进行升序排序, 对应项相乘, 求和. 理由是: 越大的数被询问覆盖的次数越多那么总和就越大. 差分数列简单易用. #include <cstdio> #include <cstring> #include <algorithm> using…
题目意思: 给出你一颗带点权的树,dist(i, j)的值为节点i到j的距离乘上节点j的权值,让你任意找一个节点v,使得dist(v, i) (1 < i < n)的和最大.输出最大的值. 题目分析: 首先如果你可以熟悉的使用树形dp的话 , 可以很快的意识的先从1号点开始dfs一遍,然后通过一些奇怪的方式,再dfs一遍得到其他点的贡献.无所以我们需要找到一个递推式是满足我选择其他号码为根时候,可以很快的得到答案 . 现在假设有两个节点v , fa ; v 是 fa 的儿子节点 , 根据dp的…
题意 给定一颗树,求这个树的最大子树,且这个子树是一个good-tree. good-tree的定义是:每个节点可以表示成一个数值区间,而树上的边表示两个点表示的数值区间相交. 题解 通过分析可以发现,这个子树是这个树的一条链,然后允许这条链上的点带上直接连接的点. 然后就转化为树上求最长链的DP问题. // #pragma GCC optimize(2) // #pragma GCC optimize(3) // #pragma GCC optimize(4) #include <bits/s…
水了一上午.. 拿6面举例子吧,因为是投掷m次取最大,最大是1概率(1/6)^m;最大是2就可以取到(1,2)那么概率就是(1/3)^m-(1/6)^m.(当前减去上一个) #include<bits/stdc++.h> #define LL long long #define LD long double #define N 100005 using namespace std; inline int ra() { ,f=; char ch=getchar(); ; ch=getchar()…
Problem - D - Codeforces Example input 5 4 1 2 -1 2 3 1 1 -2 5 2 0 -2 2 -1 3 -2 -1 -1 3 -1 -2 -2 output 0 2 3 0 2 0 0 1 1 0 最近赛中敲不出代码, 赛后倒是镇静了, 我也醉了 简述下思路及变量意义: 这里采取从前到尾遍历,由于数据范围不能完全连乘2e5个的2, 所以我们采取计数方法, num表示绝对值为2的个数, sign表示当前是正负数, min是从上一个0到现在连乘绝对值…
凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:packet reader failure 2. 使用lsnrctl status检查监听,一直没有响应,这个是极少见的情况. 3. 检查数据库状态为OPEN,使用nmon检查系统资源.如下一张截图所示,CPU利用率不高,但是CPU Wait%非常高.这意味着I/O不正常.可能出现了IO等待和争用(IO…
 cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....       其实这个应该是昨天就写完的,不过没时间了,就留到了今天.. 地址:http://codeforces.com/contest/651/problem/A A. Joysticks time limit per test 1 second memory limit per test 256…
E. Sign on Fence time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output Bizon the Champion has recently finished painting his wood fence. The fence consists of a sequence of n panels of 1 meter w…
You have array a1, a2, ..., an. Segment [l, r] (1 ≤ l ≤ r ≤ n) is good if ai = ai - 1 + ai - 2, for all i (l + 2 ≤ i ≤ r). Let's define len([l, r]) = r - l + 1, len([l, r]) is the length of the segment [l, r]. Segment [l1, r1], is longer than segment…
知识太全面了,摘抄摘不完,还是粘过来加上注释和笔记吧. 重点以及断句用加粗,注释用红括号. 一.CF卡技术及规格 一.CF卡技术及规格 1.CF卡简史 随着数码产品的高速普及,近年来闪存卡也进入了高速发展时期,得到了越来越广泛的应用,相机.手机.掌上电脑.随身听上处处都可能用到闪存卡.闪存卡有很多种类,常见的有CF卡.SD卡.MMC卡.记忆棒.SM卡.xD卡等,其中CF卡已经有了相当长的历史,由于其建立标准的时间长.兼容性好.容量大.价格低等原因而得到了广泛的应用,是通用性 最强的存储卡之一.…
题目链接:900 E. Maximum Questions 题意: 给出一个长度为n只含有a和b还有'?'的串s,且'?'可以被任意替换为a或b.再给出一个字符串t (奇数位上为a,偶数位上为b,所以在题目中只给出了t的长度m),现在要求保证t在s中出现的次数最多的情况下面,使用'?'最小的情况使用了几个问号. 题解: 拿到这个题目可以看出是DP,但是比较难以解决的就是如何确定在第i个位置时前面m个字符能够满足t,这里我看了别人的题解 -.-哇,震惊!首先的话先对'?'做前缀和,然后设置两个数组…