[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) ...
随机推荐
- Excel——排序筛选
1,自定义排序:多个关键字,从右向左一一排序 * 按颜色排序 * 按自定义序列排序 *两列中,列一个中间数,升序 * 打印标题行 * 选中,定位条件(可见),选择 * 数值筛选(大于等于),文本筛选( ...
- 逆战:微信小程序开发(二)
一.常用组件 在上一个章节中讲解了封装请求数据的模块,在此处请求轮播图的数据 1.首页轮播图数据的请求以及渲染 1.1 轮播图数据的请求 pages/home/home.js import { req ...
- css常用样式背景background如何使用
css背景background属性常用于定义HTML的背景,background简写属性作用是将背景属性设置在一个声明中,background背景属性常见为以下这些:.background-color ...
- JavaScript自学笔记(3)--- 用JS来实现网页浮窗
最近做个小项目,给网页加个浮窗,考验了基础的css,js技术,还是蛮有意思的,代码如下(部分代码来源于引用,见底部) <!DOCTYPE html> <html> <he ...
- PHP0005:PHP基础--函数
- 【daily】日常所遇 - 页面A嵌套页面B
因为懒,所以直接在http://www.runoob.com写demo测试了. (1)iframe嵌套 虽然可能到现在这中方式都很常用,但是你baidu/google一下会发现.很多人都并不提倡用if ...
- 你是个好人,但不是个好leader
午餐时间,我翻看朋友圈,浏览到一条朋友A的最新动态,她刚创业半年多的公司因为资金周转不灵.项目搁浅.合伙人撤资等多方面原因,最终倒闭了. 朋友A有着多年的名企工作经验,985大学毕业,在学校时是学霸, ...
- MVC5+EF6 入门完整教程八:数据迁移
https://www.cnblogs.com/miro/p/4164076.html
- js异步执行 按需加载 三种方式
js异步执行 按需加载 三种方式 第一种:函数引用 将所需加载方法放在匿名函数中传入 //第一种 函数引用 function loadScript(url,callback){ //创建一个js va ...
- 最大流算法之Ford-Fulkerson算法与Edmonds–Karp算法
引子 曾经很多次看过最大流的模板,基础概念什么的也看了很多遍.也曾经用过强者同学的板子,然而却一直不会网络流.虽然曾经尝试过写,然而即使最简单的一种算法也没有写成功过,然后对着强者大神的代码一点一点的 ...