这次是校内OJ(HHHOJ)线上比赛,网址:http://211.140.156.254:2333/contest/51

  (我去刚刚快写完了手贱关掉了)

  这次总体难度也不高,T1&&T2都是TG难度的题(可能还更低),T3要用到主席树(这个以后再说)大力切,但60分的暴力还是很好水的。

  所以 100+100+60=260分是可以拿的(然而我只拿了160,T2爆0了)

  先%一下dalao:

  yu'ao dalao 260又是RANK 1

  陈潇然 dalao 199 小学生虐场

  CJJ dalao 15 光荣炸裂,死而无憾地垫底(%%%)

  然后开始讲题

  

  T1 比赛的时候被我用玄学二分给艹过去了,到现在都不懂标算

  %一下CJJ dalao的均值不等式

  主要讲一下二分。由于n在1e5的范围内,1e4包括5位小数总共是1e9,1e5*log2(1e9)好像可以,没有犹豫地上二分

  这里不推荐*10000再转化成整数来做,可能会有爆精度的危险。因此根据范围设立一个阙值来调l,r即可

  对于mid要根据情况实际调整,每个水杯要用的水量可以直接通过一元一次方程来算。

  最后有一个小技巧:通过sscanf和sprintf来将一个数四舍五入到某一位

  具体看代码

  CODE

#include<cstdio>
#include<cstring>
using namespace std;
typedef double DB;
const DB E=0.00001;
const int N=;
int n,i;
DB T,C,t[N],c[N],MIN,MAX,l,r,mid,ans;
bool flag=;
inline void search(DB x)
{
DB res=;
for (i=;i<=n;++i)
{
if (t[i]>x&&T>=x) { l=mid; return; }
if (t[i]<x&&T<=x) { r=mid; return; }
res+=c[i]*(t[i]-x)/(x-T);
}
if (res<=C) l=mid; else
{
if (T<x) l=mid; else r=mid;
}
}
inline bool check(DB x)
{
DB res=;
for (i=;i<=n;++i)
{
if (t[i]>x&&T>=x) return ;
if (t[i]<x&&T<=x) return ;
if (t[i]-x==) continue;
res+=c[i]*(t[i]-x)/(x-T);
}
return res<=C;
}
int main()
{
//freopen("A.in","r",stdin); freopen("A.out","w",stdout);
scanf("%d",&n);
scanf("%lf%lf",&T,&C);
MIN=MAX=T;
for (i=;i<=n;++i)
{
scanf("%lf%lf",&t[i],&c[i]);
MIN=t[i]<MIN?t[i]:MIN;
MAX=t[i]>MAX?t[i]:MAX;
}
l=MIN,r=MAX;
while (r-l>E)
{
mid=(double)(l+r)/;
search(mid);
}
char temp[];
sprintf(temp,"%.4lf",l);
sscanf(temp,"%lf",&ans);
if (check(ans)) printf("Possible\n%.4lf",ans); else printf("Impossible");
return ;
}

  T2 一道大力枚举,然后我一直在想欧拉筛和排列组合云云。

  令 a<=b<=c,枚举a,b,就可以确定出c的范围

  然后就可以直接更新答案了(不同的排列算作不同的答案)

  其实读懂题意最重要

  CODE

#include<cstdio>
using namespace std;
const int MOD=;
int i,j,k,n;
long long ans;
int main()
{
scanf("%d",&n);
for (i=;i*i*i<=n;++i)
for (j=i;i*j*j<=n;++j)
{
k=n/i/j;
if (k<j) break;
if (i^j) ans=(ans+(k-j)*+)%MOD; else ans=(ans+(k-j)*+)%MOD;
}
printf("%d",(int)ans);
return ;
}

  复杂度 O(3√(n2)

  T3 关于异或的题目也做过不少,不过这个无能为力(要主席树强制维护在线)

  以下是吴嘉龙巨佬的Sol

Solution-Manchery

考虑sr xor si−1≤sr+1 xor si−1sr xor si−1≤sr+1 xor si−1

相当于对si−1si−1第k位有一个限制 k是srsr和sr+1sr+1的LCP后一位

然后就能很快算出每个点向右的答案

强制在线用主席树维护

ps.其实跟上文本质一样,akak的最大非 00 位就是 sk−1sk−1和sksk的LCP

  

  好,我们来看60分的暴力,就是枚举左端点(l~r),同时不断向右^是否可行,不行就break

  CODE

#include<cstdio>
#include<iostream>
using namespace std;
const int N=;
int n,t,last,a[N],q,x,y,ans,res,i,j;
inline void read(int &x)
{
x=; char ch=getchar();
while (ch<''||ch>'') ch=getchar();
while (ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
}
inline void write(int x)
{
if (x/) write(x/);
putchar(x%+'');
}
int main()
{
//freopen("C.in","r",stdin); freopen("C.out","w",stdout);
read(n); read(t);
for (i=;i<=n;++i)
read(a[i]);
read(q);
while (q--)
{
ans=;
read(x); read(y);
x=(x+last*t)%n+; y=(y+last*t)%n+;
if (x>y) swap(x,y);
for (i=x;i<=y;++i)
{
res=;
for (j=i;j<=y;++j)
if ((res^a[j])>=res) res^=a[j],ans++; else break;
}
write(last=ans); putchar('\n');
}
return ;
}

EZ 2018 02 26 NOIP2018 模拟赛(一)的更多相关文章

  1. EZ 2018 05 26 NOIP2018 模拟赛(十六)

    这次难道就是传说中的标准分大赛?而且这次比赛的链接不翼而飞了 一堆人153pts然后就有Rank4?看来这个Rank4不值钱了,才涨了50+的Rating. 不过还好最后5min的时候想出了T1正解, ...

  2. EZ 2018 02 28 NOIP2018 模拟赛(二)

    我TM的终于改完了(其实都是SB题) 题目链接:http://211.140.156.254:2333/contest/53 T1送分,T2前40%送分,还有骗分机制在里面,T3暴力50 所以200应 ...

  3. EZ 2018 06 10 NOIP2018 模拟赛(十八)

    好久没写blog&&比赛题解了,最近补一下 这次还是很狗的,T3想了很久最后竟然连并查集都忘写了,然后T2map莫名爆炸. Rating爆减......链接不解释 好了我们开始看题. ...

  4. EZ 2018 06 17 NOIP2018 模拟赛(十九)

    这次的题目难得的水,但是由于许多哲学的原因,第二题题意表述很迷. 然后是真的猜题意了搞了. 不过这样都可以涨Rating我也是服了. Upt:链接莫名又消失了 A. 「NOIP2017模拟赛11.03 ...

  5. EZ 2018 03 09 NOIP2018 模拟赛(三)

    最近挺久没写比赛类的blog了 链接:http://211.140.156.254:2333/contest/59 这次的题目主要考验的是爆搜+打表的能力 其实如果你上来就把所有题目都看过一次就可以知 ...

  6. EZ 2018 06 24 NOIP2018 模拟赛(二十)

    很久之前写的一套题了,由于今天的时间太多了,所以记起来就写掉算了. 这一场尽管T2写炸了,但也莫名Rank4涨了Rating.不过还是自己太菜. A. 环游世界 首先我们先排个序,想一下如果不用走回来 ...

  7. EZ 2018 05 20 NOIP2018 模拟赛(十五)

    这次的比赛充满着玄学的气息,玄学链接 首先讲一下为什么没有第十四场 其实今天早上9点时看到题目就叫了:原题! 没错,整套试卷都做过,我还写了题解 然后老叶就说换一套,但如果仅仅是这样就没什么 但等13 ...

  8. EZ 2018 05 13 NOIP2018 模拟赛(十三)

    这次的比赛真心水,考时估分240,然后各种悠闲乱逛 然后测完T1数组开小了炸成40,T2,T3都没开long long,T2炸成20,T3爆0 掉回1600+的深渊,但是还有CJJ dalao比我更惨 ...

  9. EZ 2018 05 04 NOIP2018 模拟赛(十二)

    这次的试卷应该是激励我们一下的,链接 然后大家的分数就都很高,然后我就210被一群秒A T2的240大佬爆踩 掉了5rating但Rank竟然发杀了 X_o_r dalao && YZ ...

随机推荐

  1. 单元测试(一)-NUnit基础

    单元测试作为提高代码和软件质量的有效途径,其重要性和益处自不必多说,虽然我没有实践过TDD之类,但坚信单元测试的积极作用.作为一种开发方法,单元测试早在上世纪70年代就已经在Smalltalk语言被运 ...

  2. JavaScript数字转字符串,字符串转数字

    //--------------------字符串转数字--------------------------- var s = "234"; //1.纯数字转换 //1 字符串在运 ...

  3. 将window的shell脚本通过ftp传输到Linux服务器后, shell脚本中执行时提示“没有那个文件或目录”的解决办法

    出现bad interpreter:No such file or directory的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不S ...

  4. 超经典sql练习题,在teradata上实现

    题目来源:https://blog.csdn.net/flycat296/article/details/63681089 teradata实现: drop table student; create ...

  5. 脱壳_01_虚拟机壳_VMP

    写在前面的话: 上一篇文章中,带领大家一起分析了简单的压缩壳ASPACK,今天,就和大家一起来揭开VMP这道神秘的面纱: [花指令]:扰乱调试器的,并不执行: [混淆]:对原指令进行拆解或等价替换,会 ...

  6. Linux运维之——每日小技巧,获取网站请求数的前20个IP

    获取网站请求书的前20个IP |grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20

  7. C++基础算法学习——生理周期

    人有体力.情商.智商的高峰日子,它们分别每隔23天.28天和33天出现一次.对于每个人,我们想知道何时三个高峰落在同一天.给定三个高峰出现的日子p,e和i(不一定是第一次高峰出现的日子),再给定另一个 ...

  8. Alpha冲刺报告(2/12)(麻瓜制造者)

    今日任务总结 燃尽图如下: 具体完成情况如下: 江郑: 今天:完成了商品需求的数据库的基本构建. 遇到的问题:对于php的ci框架不熟,操作原理不懂 明天:和队友进行数据库的对接 符天愉: 今天:完成 ...

  9. python爬虫(三)

    webdriver Selenium是ThroughtWorks公司开发的一套Web自动化测试工具.它分为三个组件:Selenium IDE,Selenium RC (Remote Control), ...

  10. React阻止事件冒泡的正确打开方式

    需求:点击导航list按钮出现侧弹框,点击空白处弹框消失 问题:绑定空白处的点击事件到document上,但是非空白处的点击也会触发这个点击事件,在react中如何阻止事件冒泡? 解决方法:e.sto ...