[LGR-054]洛谷10月月赛II
浏览器
结论popcnt(x^y)和popcnt(x)+popcnt(y)的奇偶性相同。
然后就是popcnt为奇数的乘为偶数的。预处理一下\(2^{16}\)次方以内的popcnt,直接\(O(1)\)算就行。
大师
就是求有多少个等差子序列。
方程很好写,\(f[i]\)表示以\(i\)结尾的等差子序列个数,\(f[i] = \sum_{j=1}^i f[j]*[a[i]-a[j]=d]\),枚举一下公差就行了。这里要注意公差可能有正有负,不要一起枚举(我就在这错的)
#include <algorithm>
#include <cstdio>
#include <cstring>
typedef long long ll;
const int N = 1010;
const ll ha = 998244353;
const int M = 40010;
ll s[M], f[N], a[N], n, ans, mx;
void calc(ll d) {
memset(s, 0, sizeof s);
for (int i = 1; i <= n; ++i) {
f[i] = (1 + s[a[i]]) % ha;
if (a[i] + d >= 0 && a[i] + d <= mx) (s[a[i] + d] += f[i]) %= ha;
(ans += f[i]) %= ha;
}
}
int main() {
n = read();
for (int i = 1; i <= n; ++i) a[i] = read(), mx = std::max(mx, a[i]);
for (int i = -mx; i <= mx; ++i) {
calc(i);
}
ans = ans - mx * 2 * n % ha + ha;
ans %= ha;
printf("%lld\n", ans);
return 0;
}
礼物
冲突就是一个子集关系。而子集关系又是偏序的。“偏序集最小反链覆盖等于最长链”。所以建一个子集关系的DAG跑一个最长路就行了。然后就是有一个虚点的技巧,每个集合只与比它少一个元素的集合连边,这样点数是\(O(2^k)\)的,边数是\(O(k2^k)\)的。跑最长路的时候真点是\(1\)虚点是\(0\)就行了。
#include <algorithm>
#include <cstdio>
const int N = (1 << 21);
const int M = N * 21;
int hd[N], to[M], nxt[M], w[N], cnt;
int f[N], rd[N], rn[N], tot[N];
int n, k, a[N];
inline void adde(int x, int y) {
cnt++;
to[cnt] = y;
nxt[cnt] = hd[x];
hd[x] = cnt;
}
int main() {
n = read();
k = read();
for (int i = 1; i <= n; ++i) {
a[i] = read();
w[a[i]] = f[a[i]] = 1;
}
for (int i = (1 << k) - 1; i >= 0; --i) {
for (int j = 0; j <= k; ++j)
if (i >> j & 1) {
adde(i, i ^ (1 << j));
}
}
int ans = 0;
for (int i = (1 << k) - 1; i >= 0; --i) {
for (int j = hd[i]; j; j = nxt[j]) {
f[to[j]] = std::max(f[to[j]], f[i] + w[to[j]]);
}
ans = std::max(ans, f[i]);
}
puts("1");
printf("%d\n", ans);
for (int i = 1; i <= n; ++i) {
rn[i] = rd[f[a[i]]];
rd[f[a[i]]] = i;
tot[f[a[i]]]++;
}
for (int i = 1; i <= ans; ++i) {
printf("%d ", tot[i]);
for (int j = rd[i]; j; j = rn[j]) printf("%d ", a[j]);
puts("");
}
return 0;
}
口袋里的纸飞机
咕。
[LGR-054]洛谷10月月赛II的更多相关文章
- 【LGR-054】洛谷10月月赛II
[LGR-054]洛谷10月月赛II luogu 成功咕掉Codeforces Round #517的后果就是,我\(\mbox{T4}\)依旧没有写出来.\(\mbox{GG}\) . 浏览器 \( ...
- 洛谷10月月赛II题解
[咻咻咻] (https://www.luogu.org/contestnew/show/11616) 令人窒息的洛谷月赛,即将参加NOIp的我竟然只会一道题(也可以说一道也不会),最终145的我只能 ...
- 洛谷 4933 洛谷10月月赛II T2 大师
[题解] f[i][j]表示最后一个数为h[i],公差为j的等差数列的个数.n方枚举最后一个数和倒数第二个数转移即可.注意公差可能为负数,需要移动为正数再作为下标. #include<cstdi ...
- 洛谷 4932 洛谷10月月赛II T1 浏览器
[题解] x xor y的结果在二进制下有奇数个1,等价于x与y在二进制下的1的个数之和为奇数,因为x xor y减少的1的个数一定是偶数(两个数这一位都为1,xor的结果为0,减少了2个1) 那么答 ...
- 洛谷10月月赛II
#A: P4924 [1007]魔法少女小Scarlet 这道题考了矩阵旋转 其实很考验推公式的能力和代码能力 这里有个小技巧 可以设(x, y)为原点,然后去推公式,然后实际操作中横坐标加上x,纵坐 ...
- 【LGR-061】洛谷10月月赛 II & X Round 4 Div.1&Div 2
X Round的题目质量还是一如既往的高 然而每次周末我都要写作业没法用心打233主要是被陈指导放了鸽子 占坑代填(最近坑开的有点多)
- 【LGR-060】洛谷10月月赛 I div.1&div.2
Preface 一边打一边写作文打的像shit,T2失智严重特判错了233 Orz Div1 Rank2的foreverlastnig聚聚,顺便说一句显然Luogu的比赛质量比以往显著提高了啊 以下题 ...
- 洛谷10月月赛Round.3
Rank11:260=60+100+100 P2409 Y的积木 题目背景 Y是个大建筑师,他总能用最简单的积木拼出最有创意的造型. 题目描述 Y手上有n盒积木,每个积木有个重量.现在他想从每盒积木中 ...
- 洛谷10月月赛Round.1| P3398 仓鼠找sugar[LCA]
题目描述 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c) ...
随机推荐
- android的APT技术
转载请标明出处:https:////www.cnblogs.com/tangZH/p/12343786.html, http://77blog ...
- clr via c# delegate
1,委托列子 internal delegate void Feedback(int value); class DelegateRef { public static void StaticDele ...
- C#的冒泡排序
C#实现的从小到大的冒泡排序: public void BubbleSort(int[] array) { int length = array.Length; ; i < length - ; ...
- jsp的九大内置对象+四大作用域
1.request是httpServletRequest的对象,代表发送的请求信息 2.response是httpServletResponse的对象,代表响应请求返回的信息 3.session会话是 ...
- Demrystv
Determined Energetic Motivated Reliable Yes Stick To Victory
- .NET Core DI简单介绍
依赖注入的基础 我们都知道DI,,他是一种开发模式.他是将服务可被应用程序任何位置的代码使用,当某个代码组件(如一个类)需要引用某些外部代码(一个服务)时.都有两种选择 1:直接在调用代码种创建服务组 ...
- 基于云开发开发 Web 应用(二):界面 UI 开发
工作量分析 在我们进行这部分开发的时候,接下来我们需要进行相应的功能安排和分类. 简单看来,我需要开发 3 个页面: 首页:首页负责用户默认访问. 列表页:列表页面则是在搜索过程中,如果有多个结果,则 ...
- Mayor's posters POJ - 2528 线段树区间覆盖
//线段树区间覆盖 #include<cstdio> #include<cstring> #include<iostream> #include<algori ...
- B. Modulo Equality
当时想到的第一个想法是用拓展欧几里得解方程,求x的最小正解.一发交了之后发现爆long long,因为m是1e9. 因此本题的正解是暴力,保证有解的情况下,那么a数组中的一个数必然对应着b数组中的一个 ...
- ps调整图片指定区域的颜色,两种方法
参考链接:http://tech.wmzhe.com/article/12329.html