题面:https://www.cnblogs.com/Juve/articles/11396238.html

下面开始一句话题解:

A:爬山:

二分答案,check即可

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define int long long
using namespace std;
const int mod=1e9+7;
int n,d,a,b,l,r,mid,ans;
bool check(int m){
int p=abs(m-a),q=abs(m-b),x,y;
if(p%d==0) x=p/d;
else x=p/d+1;
if(q%d==0) y=q/d;
else y=q/d+1;
if(x+y<=n-1) return 1;
return 0;
}
signed main(){
scanf("%lld%lld%lld%lld",&n,&d,&a,&b);
if(d==0){
printf("%lld\n",max(a,b));
return 0;
}
l=min(a,b)-n*d,r=max(a,b)+n*d;
ans=max(a,b);
while(l<=r){
mid=(l+r)>>1;
if(check(mid))
ans=max(ans,mid),l=mid+1;
else r=mid-1;
}
printf("%lld\n",ans);
return 0;
}

B:学数数:

离散化,单调栈,前缀和

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#define int long long
using namespace std;
const int MAXN=1e5+5;
int n,q,a[MAXN],b[MAXN],k,cnt,sum[MAXN];
int sta[MAXN],top=0,l[MAXN],r[MAXN];
char op[5];
signed main(){
scanf("%lld%lld",&n,&q);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
memcpy(b,a,sizeof(a));
sort(b+1,b+n+1);
cnt=unique(b+1,b+n+1)-b-1;
for(int i=1;i<=n;i++){
while(top!=0&&a[sta[top]]<=a[i]) top--;
if(top==0) l[i]=1;
else l[i]=sta[top]+1;
sta[++top]=i;
}
top=0;
for(int i=n;i>=1;i--){
while(top!=0&&a[sta[top]]<a[i]) top--;
if(top==0) r[i]=n;
else r[i]=sta[top]-1;
sta[++top]=i;
}
for(int i=1;i<=n;i++){
int pos=lower_bound(b+1,b+cnt+1,a[i])-b;
sum[pos]+=(i-l[i]+1)*(r[i]-i+1);
}
for(int i=2;i<=n;i++) sum[i]+=sum[i-1];
while(q--){
scanf("%s%lld",op,&k);
if(op[0]=='='){
int x=upper_bound(b+1,b+cnt+1,k)-b-1;
int y=lower_bound(b+1,b+cnt+1,k)-b;
if(x==y) printf("%lld\n",sum[x]-sum[x-1]);
else puts("0");
}else if(op[0]=='<'){
int x=lower_bound(b+1,b+cnt+1,k)-b-1;
printf("%lld\n",sum[x]);
}else{
int x=upper_bound(b+1,b+cnt+1,k)-b-1;
printf("%lld\n",sum[cnt]-sum[x]);
}
}
return 0;
}

C:七十和十七

推一个公式即可,加上快速幂

#include<cstdio>
#include<iostream>
#include<algorithm>
#define int long long
using namespace std;
const int MAXN=1e5+5;
const int mod=1e9+7;
int f[MAXN],n,bit[MAXN];
int q_pow(int a,int b,int p){
int res=1;
while(b){
if(b&1) res=1ll*res*a%p;
a=1ll*a*a%p;
b>>=1;
}
return res%mod;
}
signed main(){
scanf("%lld",&n);
bit[0]=1;
for(int i=1;i<=n;i++) bit[i]=(bit[i-1]*2)%mod;
for(int i=1;i<=n;i++)
f[i]=(f[i-1]+(bit[i-1]-1)%mod*q_pow(i,mod-2,mod)%mod)%mod;
printf("%lld\n",f[n]);
return 0;
}

HZOI20190822模拟29题解的更多相关文章

  1. [CQOI2012]模拟工厂 题解(搜索+贪心)

    [CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P26 ...

  2. 「题解」NOIP模拟测试题解乱写I(29-31)

    NOIP模拟29(B) T1爬山 简单题,赛时找到了$O(1)$查询的规律于是切了. 从倍增LCA那里借鉴了一点东西:先将a.b抬到同一高度,然后再一起往上爬.所用的步数$×2$就是了. 抬升到同一高 ...

  3. noip模拟29[简单的板子题](虽然我不会)

    \(noip模拟29\;solutions\) 这次考试给我最大的伤害,让我意识到了差距 这场考试可以说是非常的简单,就是简单到,看两眼,打个表就有结果了 但是呢?我考得非常的完蛋,只有30pts 据 ...

  4. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  5. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  6. HGOI NOIP模拟4 题解

    NOIP国庆模拟赛Day5 题解 T1 马里奥 题目描述 马里奥将要参加 NOIP 了,他现在在一片大陆上,这个大陆上有着许多浮空岛,并且其中一座浮空岛上有一个传送门,马里奥想要到达传送门从而前往 N ...

  7. 10.8 wtx模拟题题解

    填坑 orz w_x_c_q w_x_c_q的模拟赛(150pts,炸了) money 题目背景: 王小呆又陷入自己的梦里.(活在梦里...) 题目描述: 王小呆是一个有梦想的小菜鸡,那就是赚好多好多 ...

  8. [NOIP模拟13]题解

    A.矩阵游戏 其实挺水的? 考场上根本没有管出题人的疯狂暗示(诶这出题人有毛病吧这么简单的东西写一大堆柿子),而且推公式能力近乎没有,所以死掉了. 很显然乘法有交换率结合率所以操作顺序对最终结果没什么 ...

  9. 「题解」NOIP模拟测试题解乱写II(36)

    毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...

随机推荐

  1. CF Round #427 (Div. 2) C. Star sky [dp]

    题目链接就长这样子? time limit per test 2 seconds memory limit per test 256 megabytes   Description The Carte ...

  2. 安装和设置kubectl命令

    Linux [root@cx-- ~]# curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.13.5/bin/ ...

  3. 2019/11/1 CSP模拟

    写在前面的反思 该拿的部分分还是得拿完啊,因为懒+动作慢没有写最后一道题的菊花图和链的情况,其实这两个点并不难.. 虽然只有\(10pts\),但是已经足够往上爬一截了啊,额外的\(10pts\)在今 ...

  4. 现金贷平台下载量TOP100 涉逾30家P2P

    一.什么是现金贷,现状如何 那么什么是现金贷呢?在笔者看来,狭义的现金贷主要是指基于互联网等技术手段的小额现金贷款,广义的现金贷可以包括任何以小额现金和存款为标的进行借贷的行为,是一种无担保.无抵押. ...

  5. 有道云笔记新功能发现——有道云笔记剪报,完美解决不开会员保存csdn博客到本地的问题。

    怎么用 方法一:谷歌插件 方法二:http://note.youdao.com/web-clipper-chrome.html 添加到书签 功能: 能够把网页浏览的内容保存到有道云笔记 解决了自己的难 ...

  6. <小白学技术>将python脚本导出为exe可执行程序

    1.简介(为啥需要导出为exe可执行程序) python写完的程序靠命令来执行,显得太专业,不符合python简单的特点(好吧,主要是太low) 代码给别人执行,别人没有你的python库也没法用(双 ...

  7. USACO 2013 January Silver Painting the Fence /// oj23695

    题目大意: 输入n,k :n次操作 找到覆盖次数在k及以上的段的总长 一开始位置在0 左右活动范围为1-1000000000 接下来n行描述每次操作的步数和方向 Sample Input 6 22 R ...

  8. selenium基础(生成测试报告)

    测试报告 生成HTML测试报告 下载HTMLTestRunner.py包 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 下载后,把H ...

  9. 编写main方法

  10. vue-cli3使用yarn run build打包找不到路径

    vue-cli3使用yarn run build打包项目部署到服务器上面,运行空白 解决办法非常方便,直接创建vue.config.js 在vue.config.js中添加即可 再打包项目即成功