2019.10.25 csp-s模拟测试86 反思总结
继续存档
早上来补了一下昨天的题,不过肯定这两天的没法完全补起来
T1:
经典思路:关于位运算的题讨论每一位的贡献
#include<iostream>
#include<cstdio>
using namespace std;
int t,mod=1e9+;;
long long l,r,all,cnt,ans;
long long count(long long x,int k){
long long num=;
num+=x/(1ll<<(k+));
x-=(1ll<<(k+))*num;
num*=(1ll<<k);
num+=((x>=(1ll<<k))?(x+-(1ll<<k)):);
return num;
}
int main()
{
scanf("%d",&t);
while(t--){
scanf("%lld%lld",&l,&r);
all=r-l+;
ans=;
for(int i=;i<=;i++){
cnt=count(r,i)-count(l-,i);
ans=(ans+cnt*(all-cnt)%mod*(1ll<<(i+))%mod)%mod;
}
printf("%lld\n",ans);
}
return ;
}
T2:
优化DP刷表可以卡过去,并不是完全的正解啦:P
(我才知道bool是1bit而int是4bits…一直以来bool都用int代替的…)
关键点:必败状态不能互相转移、打表+分析发现对于每个让二元组(x,y)必败的z,x、y所占用的数字不重复且x与y的差不重复。
题解里好像有点小锅,如果存在f(x,y)=k<i,则f(x+i-k,y)、f(x,y+i-k)、f(x+i-k,y+i-k)不可能等于i。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int t,x,y,z,maxn;
bool f[][][];
int main()
{
for(int i=;i<=;i++){
for(int j=;j<=;j++){
for(int k=;k<=;k++){
if(!f[i][j][k]){
for(int x=;x<=;x++){
maxn=;
if(x&)maxn=min(maxn,-i);
if(x&)maxn=min(maxn,-j);
if(x&)maxn=min(maxn,-k);
for(int l=;l<=maxn;l++)f[i+(x&)*l][j+((x>>)&)*l][k+((x>>)&)*l]=;
}
}
}
}
}
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&x,&y,&z);
if(f[x][y][z])printf("Yes\n");
else printf("No\n");
}
return ;
}
T3:
关键点在于转化题目。也是一个经典的思路:遇到绝对值的问题,可以考虑把绝对值拆成正负两种作差方法分开考虑。
于是对于一些si,它会被加两次或者减两次。对于另一些si,它会加一次减一次正好抵消。首位特殊讨论。
设计dp,首先可以想到+2、-2、0这三种。但是考虑2和-2的产生就会发现2和-2肯定是间隔的XD!所以还要考虑它们的间隔状态是否合法。
通过把0的状态拆成2->-2、-2->2两种来保证转移合法。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,k;
int f[][][],a[];
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
memset(f,-0x3f,sizeof(f));
for(int i=;i<=n;i++){
for(int j=;j<=;j++){
f[i][][j]=;
}
}
for(int i=;i<=n;i++){
for(int j=;j<=min(i,k);j++){
f[i][j][]=max(f[i-][j-][],f[i-][j][])+((j==||j==k)?:)*a[i];
f[i][j][]=max(f[i-][j-][],f[i-][j][])-((j==||j==k)?:)*a[i];
f[i][j][]=max(f[i][j][],f[i-][j][]);
if(j!=&&j!=k)f[i][j][]=max(f[i][j][],f[i-][j-][]);
f[i][j][]=max(f[i][j][],f[i-][j][]);
if(j!=&&j!=k)f[i][j][]=max(f[i][j][],f[i-][j-][]);
}
}
printf("%d\n",max(f[n][k][],f[n][k][]));
return ;
}
在尝试补这套题的时候发生了各种各样脑残的错误,例如“咦bool原来是1bit吗”之类的:D
脑子是个好东西 希望我有XDDDDDDDD
2019.10.25 csp-s模拟测试86 反思总结的更多相关文章
- 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组
2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色
2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)
2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...
- csp-s模拟测试86
csp-s模拟测试86 分屋前的最后一次考试,我早就放弃了自己. 02:02:46 70 02:02:57 03:16:08 100 03:16:08 $T1$忘了按位计算,达哥按位计算的$T1$当时 ...
- 2019.8.14 NOIP模拟测试21 反思总结
模拟测试20的还没改完先咕着 各种细节问题=错失190pts T1大约三分钟搞出了式子,迅速码完,T2写了一半的时候怕最后被卡评测滚去交了,然后右端点没有初始化为n…但是这样还有80pts,而我后来还 ...
- 2019.8.9 NOIP模拟测试15 反思总结
日常爆炸,考得一次比一次差XD 可能还是被身体拖慢了学习的进度吧,虽然按理来说没有影响.大家听的我也听过,大家学的我也没有缺勤多少次. 那么果然还是能力问题吗……? 虽然不愿意承认,但显然就是这样.对 ...
- 2019.8.1 NOIP模拟测试11 反思总结
延迟了一天来补一个反思总结 急匆匆赶回来考试,我们这边大家的状态都稍微有一点差,不过最后的成绩总体来看好像还不错XD 其实这次拿分的大都是暴力[?],除了某些专注于某道题的人以及远程爆踩我们的某学车神 ...
- 2019.10.25 csp-s模拟测试87 反思总结
一次非常神奇的考试,考完试以后看着T2的0pts突然笑死我自己 太智障了这什么神奇的题意理解错误23333 T1一眼分类讨论,两眼二分,觉得分类讨论有点玄学但是出题人八成不会卡[何],然后本着对二分的 ...
- 2019/10/17 CSP模拟 总结
T1 补票 Ticket 没什么好说的,不讲了 T2 删数字 Number 很后悔的是其实考场上不仅想出了正解的方程,甚至连优化都想到了,却因为码力不足只打了\(O(n^2)\)暴力,甚至还因为细节挂 ...
随机推荐
- MyEclipse使用总结——Maven项目如何启动运行发布到tomcat中[转]
前面两篇文章: 新建maven框架的web项目 以及 将原有项目改成maven框架 之后,我们已经有了maven的项目 那么 maven项目到底怎么启动呢 如果我们直接在myeclipse中按以前的启 ...
- springboot自己实现mysql主从数据切换机制
在很多公司都是实现了数据的读写分离,所谓的读写分离,就是写的时候从主库 ,然后从库就会从主库中复制过去,这样就会形成了数据的读写分离,然而在很多场景是适用的,那么我们怎么做呢,可以利用aop 加注解的 ...
- 新手redis集群搭建
redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程 下载redis压缩包,然后解压压缩文件:进入到解压缩后的redis文件目录(此时可以看到Makefile文 ...
- Luogu P3007 [USACO11JAN]大陆议会The Continental Cowngress
P3007 [USACO11JAN]大陆议会The Continental Cowngress 题意 题意翻译 简述:给出\(n\)个法案,\(m\)头牛的意见,每头牛有两个表决格式为"支持 ...
- 09.Hibernate中的事务与并发
事务1. 什么是事务 * 事务就是逻辑上的一组操作,组成事务的各个执行单元,操作要么全都成功,要么全都失败. * 转账的例子:冠希给美美转钱,扣钱,加钱.两个操作组成了一个事情! 2. 事务的特性 * ...
- [转]WPF的Presenter(ContentPresenter)
这是2年前写了一篇文章 http://www.cnblogs.com/Clingingboy/archive/2008/07/03/wpfcustomcontrolpart-1.html 我们先来看M ...
- [转][Prism]Composite Application Guidance for WPF(6)——服务
[Prism]Composite Application Guidance for WPF(6)——服务 周银辉 在Ioc和DI中,最熟悉的 ...
- 【python之路44】tornado的用法 (二)
参考:https://www.cnblogs.com/sunshuhai/articles/6253815.html 一.代码目录构建 代码目录设置如下图: #!/usr/bin/env python ...
- mysql函数替换域名
UPDATE `pigcms_product` SET info = REPLACE ( info, 'oto.mph88.com', 'www.10000fk.net' ) ;
- Java通过接口或者抽象类调用方法的时候,怎么知道调用的是哪个实现类里的方法?
用对象的 getClass() 方法获得它的类,之后就可以随意去判断这是哪个实现类了. 比如代码1-1所示的JDBC连接池的代码,我们想要知道conn调用的close方法是释放连接还是归还连接, 我们 ...