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

不算太炸

但是这个还是算了吧。。。

其实状态不是很好。

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:徘徊的更多相关文章

  1. [考试反思]0718 NOIP模拟测试5

    最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...

  2. [考试反思]0814NOIP模拟测试21

    前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...

  3. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  4. [考试反思]0909csp-s模拟测试41:反典

    说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...

  5. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  6. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  7. [考试反思]1003csp-s模拟测试58:沉淀

    稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...

  8. [考试反思]0816NOIP模拟测试23

    210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ...

  9. [考试反思]0801NOIP模拟测试11

    8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不 ...

随机推荐

  1. C++学习笔记二、头文件与源文件

    头文件 .h 与源文件 .ccp 的区别 .h 文件一般是用来定义的,比如定义函数.类.结构体等: .cpp 文件则是对头文件的定义进行实现. include .h文件,可以调用你声明的函数.类等.当 ...

  2. 基于Docker和Golang搭建Web服务器

    1 场景描述 基于centos7的docker镜像搭建golang开发环境 在docker容器内,使用golang实现一个Web服务器 启动docker容器,并在容器内启动Web服务器 我购买了一个最 ...

  3. Android中三种常用解析XML的方式(DOM、SAX、PULL)简介及区别

    XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能.今天就由我向大家介绍一下在Android平台下几种常见的XML解 ...

  4. Flask学习之旅--Flask项目部署

    一.写在前面 Flask 作为一个轻量级的 Web 框架,具有诸多优点,灵活方便,扩展性强,开发文档也很丰富.在开发调试的过程中,我们往往会使用 Flask 自带的 Web 服务器,但如果要投入到生产 ...

  5. Focus on the Good 专注于好的方面

    [1]  Dealing with people is like digging for gold. When you go digging for an ounce of gold, you hav ...

  6. springboot 快速开发的定制补充

    增强 SpringBoot 快速开发工具 项目地址:https://gitee.com/sanri/web-ui 优点:这是一个 web 通用配置的组件,即插即用,可用于新项目或私活.是对 Sprin ...

  7. Controller层的方法访问标志与Spring装配与AspectJ切面处理

    最近在做AspectJ实现的日志模块,在spring配置中加入了<aop:aspectj-autoproxy/>,之后发现,只要有用到自定义注解的类,某些方法经MVC请求时就报空指针错误. ...

  8. 基于Spring Boot的统一异常处理设计

    基于Spring Boot的统一异常处理设计 作者: Grey 原文地址:https://www.cnblogs.com/greyzeng/p/11733327.html Spring Boot中,支 ...

  9. 【Python秘籍】numpy到tensor的转换

    在用pytorch训练神经网络时,我们常常需要在numpy的数组变量类型与pytorch中的tensor类型进行转换,今天给大家介绍一种它们之间互相转换的方法. 一.numpy到tensor 首先我们 ...

  10. boost::asio::io_service::定时器任务队列

    使用io_service和定时器写的一个同步和异步方式的任务队列 #pragma once #include <string> #include <iostream> #inc ...