R2 day2
简单写一下吧
emmmm,来晚了1h,没赶上,所以没交.......(捂脸
T1
开始读错题了诶
开烤1.2h后
发现是个傻逼题....
排序一下,维护前缀最左,右端点
随机数据我跑的比他们都慢..........
#include<cstdio>
#include<algorithm>
#define LL long long
const int maxn = 2000007;
struct node {
int v,loc;
} a[maxn];
bool cmp(node q,node b) {
if(q.v == b.v) return q.loc <= b.loc;
return q.v > b.v;
}
int n,m;
int main() {
freopen("w.in","r",stdin); freopen("w.out","w",stdout);
LL ans = 0; scanf("%d",&n);
for(int i = 1;i <= n;++ i) scanf("%d",&a[i].v), a[i].loc = i;
std::sort(a + 1, a + n + 1,cmp);
int l = a[1].loc,r = a[1].loc;
ans = a[1].v;
for(int i = 2;i <= n;++ i) {
int k = a[i].loc;
if(k < l) l = k;
if(k > r) r = k;
if(k >= l)ans = std::max(1ll * (k - l + 1) * a[i].v,ans);
if(k <= r)ans = std::max(1ll * (r - k + 1) * a[i].v,ans);
}
printf("%I64d\n",ans);
return 0;
}
T2
emmmm,推了一下式子
发现这个

所以只需要尽可能的合并就行了
#include <cstdio>
int cnt[10000007];
const int mod = 998244353;
#define LL long long
int main() {
freopen("s.in","r",stdin);
freopen("s.out","w",stdout);
int n;
scanf("%d",&n);
int cnt[32] = {0};
for(int i = 1;i <= n;i ++) {
int x; scanf("%d", &x);
for(int j = 0;j < 32;j ++) if(x & (1 << j)) cnt[j] ++;
}
LL ans = 0;
for(int i = 1;i <= n;i++) {
int x = 0;
for (int j = 0;j < 32;j ++) if (cnt[j]) x |= (1 << j), cnt[j] --;
ans = (ans + 1ll * x * x) % mod;
}
printf("%lld\n",ans % mod);
return 0;
}
T3
状压dp
记录本行和上一行状态
然后把可行状态抽出来就行了
#include<cstdio>
#include<algorithm>
using namespace std;
#define LL long long
const int mod = 1e9 + 7;
inline int read() {
int x = 0;
char c = getchar();
while(c < '0' || c > '9')c = getchar();
while(c <= '9'&& c >= '0')x = x * 10 + c - '0',c = getchar();return x;
return x;
}
int n,m,k;
const int maxn = 17;
int cant[maxn];
bool judge(int s) {
if((s & (s >> 1)) || (s & (s >> 2))) return false;
return true;
}
int s[maxn];
int id[maxn];
int dp[maxn][407][407];
int main() {
n = read() , m= read() - 1,k = read();
for(int t,p,i = 1;i <= k;++ i) {
t = read(),p = read() - 1;
cant[t] |= (1 << p);
}
int T = (1 << m) - 1;
int cnt = 0;
for(int i = 0;i <= T;++ i)
if(judge(i)) s[++ cnt] = i,s[i] = cnt;
for(int i = 0;i <= T;++ i) dp[0][0][i] = 1;
long long ans = 0;
for(int i = 1;i <= n;++ i) {
for(int s1 = 0; s1 <= T;++ s1) {
if(cant[i] & s[s1]) continue;
for(int s2 = 0;s2 <= (i <= 1 ? 1 : T);++ s2) {
if(cant[i - 1] & s2 || ((s1 >> 1) & s2) || ((s1 << 1) & s2) || (s1 & s2)) continue;
for(int s3 = 0;s3 <= (i <= 2 ? 1 : T);++ s3) {
if((s3 & s1) || (cant[i - 2] & s3) || ((s2 >> 1) & s3) || ((s2 << 1) & s3) || (s2 & s3) ) continue;
dp[i][s2][s1] += dp[i - 1][s3][s2];
dp[i][s2][s1] %= mod;
}
if(i == n) {ans += dp[i][s2][s1],ans %= mod;}
}
}
}
printf("%lld\n",ans);
return 0;
}
R2 day2的更多相关文章
- 「POI2011 R2 Day2」Tree Rotations【线段树合并】
题目链接 [BZOJ] [洛谷] [LOJ] 题解 由于是前序遍历,那么讨论一棵树上的逆序对的情况. 两个节点都在左子树上 两个节点都在右子树上 两个节点分别在不同的子树上. 前两种情况其实也可以归结 ...
- 1.初始Windows Server 2012 R2 Hyper-V + 系统安装详细
干啥的?现在企业服务器都是分开的,比如图片服务器,数据库服务器,redis服务器等等,或多或少一个网站都会用到多个服务器,而服务器的成本很高,要是动不动采购几十台,公司绝对吃不消的,于是虚拟化技术出来 ...
- 阿里云学生优惠Windows Server 2012 R2安装IIS,ftp等组件,绑定服务器域名,域名解析到服务器,域名备案,以及安装期间错误的解决方案
前言: 这几天终于还是按耐不住买了一个月阿里云的学生优惠.只要是学生,在学信网上注册过,并且支付宝实名认证,就可以用9块9的价格买阿里云的云服务ECS.确实是相当的优惠. 我买的是Windows S ...
- 【从零开始学BPM,Day2】默认表单开发
[课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...
- windows 2012 r2 can't find kb2919355
问题 解决: 1.手动安装了 Windows8.1-KB2919442-x64 2.手动下载 KB2919355 更新成功 Turns out to have been a result ...
- Windows Server 2008 R2常规安全设置及基本安全策略
这篇文章主要介绍了Windows Web Server 2008 R2服务器简单安全设置,需要的朋友可以参考下 用的腾讯云最早选购的时候悲催的只有Windows Server 2008 R2的系统,原 ...
- Windows 2008 R2 安装sp1时未知错误的解决办法
最近在为Windows Server 2008 R2 打sp1补丁时出现“发生未知错误”,详细信息错误:0x800f0818: google后找到解决问题步骤,参照:http://www.wikiho ...
- 如何在Windows Server 2008 R2没有磁盘清理工具的情况下使用系统提供的磁盘清理工具
今天,刚好碰到服务器C盘空间满的情况,首先处理了临时文件和有关的日志文件后空间还是不够用,我知道清理C盘的方法有很多,但今天只分享一下如何在Windows Server 2008 R2没有磁盘清理工具 ...
- 在CentOS 7上安装.NET Core R2跑Hello World
前言 在上个月.NET Core出了最新版本预览版,只是在Window系统上试验了一下.原本想等发布正式版的时候在linux系统上试试,可能还需要一段时间,刚好有空可以折腾一下. 由于之前安装的Ubu ...
随机推荐
- TERMIOS详解【转】
转自:https://blog.csdn.net/guo_wangwei/article/details/1102931# TERMIOS NAME termios, tcgetattr, tcset ...
- kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 【转】
转自:http://blog.chinaunix.net/uid-26349264-id-4455634.html 目录 kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 ...
- 功率 dbm 和 mw 的换算
射频知识; 功率/电平(dBm):放大器的输出能力,一般单位为w.mw.dBm.dBm是取1mw作基准值,以分贝表示的绝对功率电平. 换算公式:电平(dBm)=10lgw5W → 10lg5000 ...
- KVM -> 虚拟机磁盘管理_03
1.KVM磁盘管理 1.KVM qcow2.raw.vmdk等镜像格式说明:http://blog.csdn.net/zhengmx100/article/details/53887162 raw: ...
- aliyun服务器ecs被ddos后无法被zabbix-server监控的处理
ecs绑定的域名被ddos攻击后,阿里云黑洞ecs服务器一个月,此时zabbix服务端无法联系到zabbix-agent会一直报错 解决办法: 1.在ecs前添加slb并把之前指向ecs的域名a.ch ...
- 编译安装lamp环境
httpd 2.4.9 + mysql-5.5.33 + php-5.4.29编译安装过程: 准备好以下安装包: mysql-5.5.33-linux2.6-x86_64.tar.gz apr-uti ...
- Protocol Buffers简明教程
随着微服务架构的流行,RPC框架渐渐地成为服务框架的一个重要部分. 在很多RPC的设计中,都采用了高性能的编解码技术,Protocol Buffers就属于其中的佼佼者. Protocol Buffe ...
- OCM_第十三天课程:Section6 —》数据库性能调优 _结果缓存 /多列数据信息采集统计/采集数据信息保持游标有效
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- MACE(2)-----模型编译
作者:十岁的小男孩 QQ:929994365 无用 本文仅用于学习研究,非商业用途,欢迎大家指出错误一起学习,文章内容翻译自 MACE 官方手册,记录本人阅读与开发过程,力求不失原意,但推荐阅读原文. ...
- 性能测试三十四:jvm内存结构(栈、堆、永久代)
Java内存管理机制 Java采用了自动管理内存的方式Java程序是运行在Jvm之中的Java的跨平台的基于Jvm的跨平台特性内存的分配和对象的创建是在Jvm中用户可以通过一系列参数来配置Jvm Jv ...