题面: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. csps模拟87888990部分题解

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

  2. 国内外自然语言处理(NLP)研究组

     国内外自然语言处理(NLP)研究组 *博客地址 http://blog.csdn.net/wangxinginnlp/article/details/44890553 *排名不分先后.收集不全,欢迎 ...

  3. 修改Chrome的UserAgent

    修改Chrome的UserAgent 直接在chrome商店中搜索user-agent switcher 打开chrome 商店,搜索 user-agent switcher   点击免费, 然后执行 ...

  4. System.Web.Mvc.RoutePrefixAttribute.cs

    ylbtech-System.Web.Mvc.RoutePrefixAttribute.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutra ...

  5. Activity详解三 启动activity并返回结果 转载 https://www.cnblogs.com/androidWuYou/p/5886991.html

    首先看演示: 1 简介 .如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int ...

  6. Error parsing XML: junk after document element这样的错误 - CSDN博客

    很多开发者可能在编写XML布局文件时提示Error parsing XML: junk after document element这样的错误,这里Android123提示大家一般合法的XML文件只有 ...

  7. Python 函数与内置函数

    1.函数的基本定义 def 函数名称(参数) 执行语句 return 返回值 def : 定义函数的关键字: 函数名称:顾名思义,就是函数的名字,可以用来调用函数,不能使用关键字来命名,做好是用这个函 ...

  8. JAVA基础_自定义泛型

    泛型的来源 在Java中,泛型借鉴了C++的模版函数,从而引入了泛型. C++泛型 int add(int x,int y){ return x + y; } float add(float x.fl ...

  9. Java 内部类,成员类,局部类,匿名类等

    根据内部类的位置不同,可将内部类分为 :成员内部类与局部内部类. class outer{ class inner{//成员内部类 } public void method() { class loc ...

  10. 第九篇:Spring的applicationContext.xml配置总结

    在前面的一篇日志中,记录了web.xml配置启动的顺序,web启动到监听器ContextLoaderListener时,开始加载spring的配置文件applicationContext.xml(通常 ...