CF1141F2 Same Sum Blocks (Hard)】的更多相关文章

Codeforce 1141 F2. Same Sum Blocks (Hard) 解析(思維.前綴和.貪心) 今天我們來看看CF1141F2(Hard) 題目連結 題目 給你一個數列\(a\),要你從中找出若干個數字和一樣的disjoint的連續區段,輸出最多的段數和是哪些段. 前言 一開始還是陷入和以前一樣的誤區,總感覺如果暴力把所有可能都找出來要\(O(2^n)\),但其實因為區段是連續的,所以全部找出來只要\(O(n^2)\) @copyright petjelinux 版權所有 觀看更…
题解:发现可以通过枚举区间将区间和相同的元组记录在一个表中,对于答案来说,在同一个表中的元组的选择才会对答案产生贡献.发现每一个表中都是一个个区间,问题转化成了对于每一个表来说,选择若干个不相交的区间,使得选择出来的区间数量最多,直接贪心即可. 代码如下 #include <bits/stdc++.h> using namespace std; typedef pair<int,int> P; const int maxn=1501; int n,a[maxn],sum[maxn]…
题目大意:给定一个 N 个值组成的序列,求序列中区间和相同的不相交区间段数量的最大值. 题解:设 \(dp[i][j]\) 表示到区间 [i,j] 时,与区间 [i,j] 的区间和相同的不相交区间数量是多少.可以枚举之前的区间进行状态转移,时间复杂度为 \(O(n^4)\). 代码如下 #include <bits/stdc++.h> using namespace std; const int maxn=51; int n,ans,x,y,a[maxn],sum[maxn],dp[maxn]…
传送门easy 传送门hard 切水题的感觉真好 看到数据范围这么小,所以暴力枚举所有的可能,然后用map+vector存下每种值的区间,然后贪心去选 代码: #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<map> using namespace std; void read(int…
题意 给定一个序列,求最多的不相交区间满足区间和相同. 分析 从暴力的角度想,是枚举区间再求和,反过来想,直接记录每个和对应是那些区间,然后排个序求最大不相交即可. 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1550; int n; ll a[N],p[N]; vector<pair<int,int>> ans,t; map<ll,vecto…
题意:有一长度为\(n\)的数组,求最多的区间和相同的不相交的区间的个数. 题解:我们可以先求一个前缀和,然后第一层循环遍历区间的右端点,第二层循环枚举左端点,用前缀和来\(O(1)\)求出区间和,\(pos\)表示当前区间和为\(cur\)的最右端点,如果我们枚举的左端点\(j\)比\(pos[cur]\)所在的最右端点大,那么我们就能得到区间和为\(cur\)的新区间,并更新状态.上面操作我们贪心得出一定是最优的.之后我们再遍历map,求出次数最多的区间和,然后再枚举所有区间,并且注意区间不…
1.1.TAB_TAOBAO_BILL 1.1.1检查下这张表是否可以在线重定义,无报错表示可以,报错会给出错误信息: exec dbms_redefinition.can_redef_table('ycheng', 'P_TAB_TAOBAO_BILL');   1.1.2.expdp导出表进行备份(这里的DATA_PUMP_1目录是/data1/dpdump) expdp \'\/ as sysdba\' directory=DATA_PUMP_1 tables=TAB_TAOBAO_BIL…
问题现象:SYSTEM表空间使用率超99%,前期设计时SYSTEM表空间是10G固定大小不允许自动扩展. 1.查询SYSTEM表空间的使用率 set linesize 200 col TABLESPACE_NAME for a25 col SUM_SPACE(M) for a20 col USED_SPACE(M) for a20 col USED_RATE(%) for a20 col FREE_SPACE(M) for a20 SELECT D.TABLESPACE_NAME, SPACE…
本章主要阐述SGA中的Database buffer cache. Buffer cache { 1.pin (读写瞬间的状态) 2.clean 3.dirty 4.unused } --Database buffer cache 概述: 1.段.区.块的概念: create table t2 (     id int,     name varchar2(30) ); 建立一个表,同时建立一个段, 建立段的同时,会给段分配一个区, 区是物理上连续的几个块. 区是oracle给段分配的最小单位.…
在ORACLE数据库中,如何计算一个表所占用的存储空间呢?我们可以通过系统视图DBA_SEGMENTS.USER_SEGMETNS.DBA_TABLES来查看一个表所占空间的大小,如下所示:   SELECT SEGMENT_NAME              TABLE_NAME       ,SUM(BLOCKS)               BLOCKS       ,SUM(BYTES)/(1024*1024)    "TABLE_SIZE[MB]" FROM USER_SEG…