首页 > TAG信息列表 > COCI2017
P4956 [COCI2017-2018#6] Davor
题目 代码 #include<iostream> using namespace std; int main() { int x,k = 1; int n; cin>>n; // 一个星期筹集 7 * x 元 + (0 + 6k) * 7 / 2 = 7x + 21k //既然要x尽可能大 那x 就从100开始循环 while(true) { for(x = 100; xP4443 [COCI2017-2018#3] Dojave 题解
P4443 [COCI2017-2018#3] Dojave 题解 前言: 不知道为什么都用的哈希,我的优化暴力全都均摊了,直接最优解( 简要题意: 给定 \(m\) 和 \(0\sim 2^m-1\) 的全排列 \(a_i\),问有多少子区间满足交换两个不同位置后,整个区间异或和为 \(2^m-1\) \(m\le 20\)。 分析: 正难则反,考虑求出不合法的luogu P5052 [COCI2017-2018#7] Go
题面传送门 不知道这道题为什么有紫题难度,随便写写就过了。 容易想到dp解决这个问题。 我们设\(f_{i,j,t,0/1}\)表示当前经过了\([i,j]\)区间内的小精灵,经过了\(t\)的时间,在左/右端点能得到的最大收益。 这个东西随便从左右转移一下即可。 然后你会发现这个东西是\(O(n^2MaxT)\)的【洛谷4443】[COCI2017-2018#3] Dojave(哈希)
点此看题面 给定一个\(0\sim 2^n-1\)的排列,求有多少个区间,满足在任意交换原序列中两个不同的数之后这个区间的异或和可以为\(2^n-1\)。 \(n\le20\) 不合法的判定条件 这种题目直接判合法显然不太容易,因此我们考虑什么样的情况不合法。 注意到一个极其重要的性质就是这道题中的数【洛谷5052】[COCI2017-2018#7] Go(区间DP)
点此看题面 有\(n\)个房子和\(m\)个奖励,第\(i\)个奖励形如在第\(ti_i\)个时刻前到达第\(a_i\)个房子(\(a_i\)互不相同)可以获得\(v_i\)的收益。 求从第\(k\)个房子出发能获得的最大总收益。 \(k\le n\le10^3,m\le100,ti_i\le2\times10^3\) 区间\(DP\) 由于我们走过的范围必然是包