[考试反思]1013csp-s模拟测试71:徘徊


分差好大。。。但是从排名上看也许还可以接受?
不算太炸

但是这个还是算了吧。。。
其实状态不是很好。
T1不会,打的搜索,想到一个剪枝但是感觉没什么用,所以没打。
考后打上,85了。。。打上另一个就90了。。。
T3已经想到正解思路了,但是不完善
T2想到正解,但是没有证明它是树形,于是没有打。。。
又说不完,晚上又要考,改善状态。
T1:毛一琛
又是meet in miiddle。又没想到。
其实也就是双向搜索,然后hash_map查状态即可。
打的lower_bound,多了一个log。勉强过了。
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
vector<int>X[],Y[];
int n,x[],ans,y[],r;
void sch1(int p,int w,int st){
if(p-==n>>){if(w>=)X[st].push_back(w);return;}
sch1(p+,w-x[p],st|<<p-);sch1(p+,w,st);sch1(p+,w+x[p],st|<<p-);
}
void sch2(int p,int w,int st){
if(p==n+){if(w>=)Y[st].push_back(w);return;}
sch2(p+,w+x[p],st|<<p-r);sch2(p+,w,st);sch2(p+,w-x[p],st|<<p-r);
}
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%d",&x[i]);r=(n>>)+;
sch1(,,);sch2(r,,);
for(int i=;i<<<(n>>);++i)sort(X[i].begin(),X[i].end());
for(int i=;i<<<n-(n>>);++i)sort(Y[i].begin(),Y[i].end());
for(int i=;i<<<(n>>);++i)for(int j=;j<<<n-(n>>);++j)
for(int v=;v<X[i].size();++v)
if(lower_bound(Y[j].begin(),Y[j].end(),X[i][v])!=Y[j].end())
if(*(lower_bound(Y[j].begin(),Y[j].end(),X[i][v]))==X[i][v])
y[i<<n-(n>>)|j]=;
for(int i=;i<<<n;++i)ans+=y[i];//,printf("%d\n",y[i]);
printf("%d\n",ans);
}
T2:毛二琛
首先这题puts("0")会爆零,所以所有情况都有解。
考虑每一个数移动的方向,那么其实就限制了q序列上某两个相差为1的值的相对位置。
这样的话就是SAO那道题简化到序列上了,dp[i][j]表示考虑到操作i,其相对位置是j,前缀和优化就完事了。
代码倒好说。想到就能写出来。
#include<cstdio>
#define mod 1000000007
inline int Mod(int p){return p>=mod?p-mod:p;}
int p[],np[],n,dir[],dp[][],sum[][];//dir=2先i后i-1
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%d",&p[i]),p[i]++,np[p[i]]=i;
for(int i=;i<=n;++i)
if(np[i]>i){dir[i]=;for(int j=i+;j<p[i];++j)dir[j]=;}
else {dir[i]=;for(int j=i-;j>np[i];--j)dir[j]=;}
dp[][]=sum[][]=;
for(int i=;i<=n-;++i){
if(dir[i]==)for(int j=;j<=i;++j)dp[i][j]=Mod(mod+sum[i-][i-]-sum[i-][j-]);
else for(int j=;j<=i;++j)dp[i][j]=sum[i-][j-];
for(int j=;j<=i;++j)sum[i][j]=Mod(sum[i][j-]+dp[i][j]);
}printf("%d\n",sum[n-][n-]);
}
T3:毛三琛
二分答案,剪枝,及时跳出。
如果目前的x连目前最优答案都不到,continue。
#include<bits/stdc++.h>
using namespace std;
int n,k,p,a[],ans=;
int Mod(int x){return x>=p?x-p:x;}
int chk(int w,int xx){
int al=,f=;
for(int i=;i<=n&&al<=k;++i){int x=Mod(xx+a[i]);if(x>w)return ;if(f+x>w)al++,f=x;else f+=x;}
if(al<=k)return ;
return ;
}
int main(){
scanf("%d%d%d",&n,&p,&k);
for(int i=;i<=n;++i)scanf("%d",&a[i]);
for(int i=;i<p;++i){
if(!chk(ans,i))continue;
register int l=,r=ans;
while(l<r-)if(chk(l+r>>,i))r=l+r>>;else l=(l+r>>)+;
ans=min(ans,chk(l,i)?l:r);
}
printf("%d\n",ans);
}
[考试反思]1013csp-s模拟测试71:徘徊的更多相关文章
- [考试反思]0718 NOIP模拟测试5
最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...
- [考试反思]0814NOIP模拟测试21
前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...
- [考试反思]1109csp-s模拟测试106:撞词
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...
- [考试反思]0909csp-s模拟测试41:反典
说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...
- [考试反思]0729NOIP模拟测试10
安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...
- [考试反思]0714/0716,NOIP模拟测试3/4
这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...
- [考试反思]1003csp-s模拟测试58:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
- [考试反思]0816NOIP模拟测试23
210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ...
- [考试反思]0801NOIP模拟测试11
8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不 ...
随机推荐
- Java9以后的垃圾回收
1: finalize() 方法 finallize() 方法是Object类的方法, 用于在类被GC回收时 做一些处理操作, 但是JVM并不能保证finalize(0 ) 方法一定被执行, 由于fi ...
- Java读源码之Thread
前言 JDK版本:1.8 阅读了Object的源码,wait和notify方法与线程联系紧密,而且多线程已经是必备知识,那保持习惯,就从多线程的源头Thread类开始读起吧.由于该类比较长,只读重要部 ...
- cocos2d-x Windows 环境搭建
本文cocos2d-x版本为3.14,3之后的版本差别不会很大 Python环境 由于需要用到几个.py文件建立工程,我们要先设置好python2.x的环境 python官网下载,在找到2.x的版本的 ...
- C语言函数名以及取地址的区别和联系
有时看到如下的代码: /*****************************/ #include <stdio.h> #include <string.h> #inclu ...
- 网页布局——grid弹性网格布局
网格布局(Grid)是最强大的 CSS 布局方案. Flexbox 是为一维布局设计的,而 Grid 是为二维布局设计. grid目前兼容性目前还可以,主流浏览器对它的支持力度很大,ie9,10宣布它 ...
- COGS 2095. 不平凡的引线
2095. 不平凡的引线 ★☆ 输入文件:firelead.in 输出文件:firelead.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] 这里说的引线是炮 ...
- vue中百度地图API的调用
1.使用百度地图api需要使用jsonp,来获取百度api的返回,因为vue不自带jsonp所以需要下载 安装jsonp npm i vue-jsonp -S 引入jsop import Vue fr ...
- API---文件操作
CreateFile() 介绍: 功能:打开或创建以下对象,并返回可访问的句柄: 控制台,通信资源,目录(只读打开),磁盘驱动器,文件,邮槽,管道. 函数原型:HANDLE CreateFile ( ...
- 利用Arthas定位线上问题实例
前言 Arthas是一个类似于Btrace的JVM在线调试分析工具,具体可参考我之前写的一篇博客:利用JVM在线调试工具排查线上问题.本文分享笔者刚遇到的一个问题,虽然不复杂,但是很典型. 问题与分析 ...
- Linux配置部署_新手向(五)——Docker的安装与使用
前言 最近还是在考虑Linux下net core的部署问题,还是发现了很多麻烦的问题,这里还是继续把需要使用的东西部署介绍下吧. Docker 其实对于Docker我也是一星半点儿,了解的不够深入,大 ...