LOJ#515. 「LibreOJ β Round #2」贪心只能过样例(bitset)
2024-08-29 04:42:30
题目描述
一共有 nnn个数,第 iii 个数 xix_ixi 可以取 [ai,bi][a_i , b_i][ai,bi] 中任意值。
设 S=∑xi2S = \sum{{x_i}^2}S=∑xi2,求 SSS 种类数。
输入格式
第一行一个数 nnn。
然后 nnn 行,每行两个数表示 ai,bia_i,b_iai,bi。
输出格式
输出一行一个数表示答案。
样例
样例输入
5
1 2
2 3
3 4
4 5
5 6
样例输出
26
数据范围与提示
1≤n,ai,bi≤1001 \le n , a_i , b_i \le 1001≤n,ai,bi≤100
臭名昭著的巧合
考场上只想到了暴力,完全没想到bitset优化qwq。
考虑到$\sum_1^{100*100} * 100 = 1e6$
然后开个bitset每次暴力合并就行了
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<bitset>
#define rg register
using namespace std;
const int MAXN = 1e6 + , mod = ;
inline int read() {
char c = getchar();int x = ,f = ;
while(c < '' || c > ''){if(c == '-')f = -;c = getchar();}
while(c >= '' && c <= ''){x = x * + c - '',c = getchar();}
return x * f;
}
int N;
bitset<MAXN> pre, nxt;
int main() {
N = read();N--;
int l = read(), r = read();
for(rg int i = l; i <= r; i++) pre[i * i] = ;
for(rg int i = ; i <= N; i++) {
int l = read(), r = read();
nxt.reset();
for(rg int k = l; k <= r; k++)
nxt |= pre << (k * k);
pre = nxt;
}
printf("%d", nxt.count());
return ;
}
最新文章
- DAC Usage3:Monitor Data-tier Applications
- Logistic回归的使用
- JQ first-child与:first的区别以及nth-child(index)与eq(index)的区别
- Linux中profile文件详解(转)
- velocity分页模板
- ARM伪指令,王明学learn
- SecureCRT自动备份脚本-华为
- 让你的CI跑起来-《持续集成》读书总结
- java中的final总结
- php 命名空间(要求php5.3以上)
- jenkins 通过批处理自动构建 非标准项目
- 实用的两款jquery树形tree插件
- Reverse Words in a String III
- 【转】教你开发jQuery插件
- Arch Linux安装记录
- Docker 基本核心原理
- saltstack之自动化运维
- gops —— Go 程序诊断分析工具
- C#文件夹权限操作整理
- python+selenium十五:CSS与Jquery
热门文章
- Ruby on Rails 中你使用了Kaminari 后,千万不要再引入will_pagination 这个Gem 了
- entity framework discriminator error
- 转-Shell笔记——命令:Sort,uniq,join,cut,paste,split
- php中配置伪静态
- Sql 本周当天本期日期转换
- 【踩坑】报错 non-static method xxx() cannot be referenced from a static context
- css3实现iPhone滑动解锁
- Android 应用监听自身卸载,弹出用户反馈调查
- Quartz Cron表达式的二三事
- 【Node.js】初识Node.js