期望:100 + 40 + 50 = 190

实际:60 + 10 + 50 = 120

考得好炸啊!!T1数组开小了炸掉40,T2用 int 读入 long long ,int存储 long long 炸掉 20

T3可以吧for维护最大值变成o(1),但是木想到啊,只想写暴力了。。。w(゚Д゚)w

最近考试低级错误一个接一个啊!!noip肿么玩啊。。简直没法好好玩耍了。

感觉要凉~~~~(>_<)~~~~

wfj竟然敢奶我:看我奶死她::

    wfj AK NOIP     wfj AK 省选(省队姐)   wfj AK NOI     wfj AK IOI 

原来以为我的数组没开小,是AC了的,因为特别注意了数组,但是。。。没想到树状数组的数组开小了。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long ans;
int n,k,tot,numt;
int num[],F[];
int val[],f[],g[];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int fastpow(long long a,long long b){
long long s=;
for(;b;b>>=){
if(b&) s=s*a%k;
a=a*a%k;
}
return s;
}
int lowbit(int x){
return x&(-x);
}
void change(int x){
for(int i=x;i<=numt;i+=lowbit(i))
F[i]+=;
}
int query(int x){
int bns=;
for(int i=x;i;i-=lowbit(i))
bns+=F[i];
return bns;
}
int ff(int now){
return fastpow(now,val[now]);
}
int gg(int now){
return fastpow(val[now],now);
}
int main(){
//freopen("lpp.in","r",stdin);
freopen("calc.in","r",stdin);
freopen("calc.out","w",stdout);
n=read();k=read();
for(int i=;i<=n;i++){
val[i]=read();
f[i]=ff(i);g[i]=gg(i);
num[++tot]=f[i];
num[++tot]=g[i];
}
sort(num+,num++tot);
numt=unique(num+,num++tot)-num-;
for(int i=;i<=n;i++){
f[i]=lower_bound(num+,num++numt,f[i])-num;
g[i]=lower_bound(num+,num++numt,g[i])-num;
}
for(int i=;i<=n;i++){
ans+=query(numt)-query(g[i]);
change(f[i]);
}
cout<<ans;
}

60分数组开小了

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long ans;
int n,k,tot,numt;
int num[],F[];
int val[],f[],g[];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int fastpow(long long a,long long b){
long long s=;
for(;b;b>>=){
if(b&) s=s*a%k;
a=a*a%k;
}
return s;
}
int lowbit(int x){
return x&(-x);
}
void change(int x){
for(int i=x;i<=numt;i+=lowbit(i))
F[i]+=;
}
int query(int x){
int bns=;
for(int i=x;i;i-=lowbit(i))
bns+=F[i];
return bns;
}
int ff(int now){
return fastpow(now,val[now]);
}
int gg(int now){
return fastpow(val[now],now);
}
int main(){
//freopen("lpp.in","r",stdin);
freopen("calc.in","r",stdin);
freopen("calc.out","w",stdout);
n=read();k=read();
for(int i=;i<=n;i++){
val[i]=read();
f[i]=ff(i);g[i]=gg(i);
num[++tot]=f[i];
num[++tot]=g[i];
}
sort(num+,num++tot);
numt=unique(num+,num++tot)-num-;
for(int i=;i<=n;i++){
f[i]=lower_bound(num+,num++numt,f[i])-num;
g[i]=lower_bound(num+,num++numt,g[i])-num;
}
for(int i=;i<=n;i++){
ans+=query(numt)-query(g[i]);
change(f[i]);
}
cout<<ans;
}

100

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int a[];
int n,r,enan;
long long k;
int fv[];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
long long readll(){
long long x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int work(){
int bns=0x7f7f7f7f;
for(int i=;i<=n;i++)
bns=min(bns,fv[i]);
return bns;
}
void change(int x){
for(int i=max(,x-r);i<=min(n,x+r);i++)
fv[i]+=;
}
void nochange(int x){
for(int i=max(,x-r);i<=min(n,x+r);i++)
fv[i]-=;
}
void dfs(int now){
if(now==k+){
enan=min(enan,work());
return ;
}
int minn=0x7f7f7f7f;
for(int i=;i<=n;i++)
if(fv[i]<minn) minn=fv[i];
for(int i=;i<=n;i++)
if(fv[i]==minn)
for(int j=max(,i-r);j<=min(n,i+r);j++){
change(j);
dfs(now+);
nochange(j);
}
}
int main(){
freopen("Game.in","r",stdin);
freopen("Game.out","w",stdout);
n=read();r=read();k=readll();
for(int i=;i<=n;i++) a[i]=read();
if(r==){
sort(a+,a++n);
long long sum=;
for(int i=;i<=n;i++)
sum+=a[n]-a[i];
if(k>=sum){
k-=sum;k/=n;
long long ans=1ll*k+1ll*a[n];
printf("%I64d",ans);
return ;
}
else{
for(int i=n;i>=;i--){
sum=;
for(int j=;j<=i;j++)
sum+=a[i]-a[j];
if(sum>k) continue;
else if(sum==k){
printf("%d",a[i]);
return ;
}
else{
k-=sum;k/=i;
long long ans=1ll*a[i]+1ll*k;
printf("%I64d",ans);
return ;
}
}
}
}
else if(n<=){
enan=0x7f7f7f7f;
for(int i=;i<=n;i++)
for(int j=max(,i-r);j<=min(n,i+r);j++)
fv[j]+=a[i];
dfs();
printf("%d",enan);
return ;
}
else{
sort(a+,a++n);
long long sum=;
for(int i=;i<=n;i++)
sum+=a[n]-a[i];
if(k>=sum){
k-=sum;k/=n;
printf("%d",k+a[n]);
return ;
}
}
}
/*
5 0 6
5 4 3 4 9
*/

40分暴力

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
using namespace std;
long long n,R,k;
long long l,r,mid,ans;
long long a[],b[],cf[],sum[];
long long read(){
long long x=;int f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
long long query(long long ll,long long rr){
rr=min(rr,n);
if(ll<) return sum[rr];
else return sum[rr]-sum[ll];
}
bool judge(){
memset(cf,,sizeof(cf));
long long sumcf=,res=k;
for(long long i=;i<=n;i++) a[i]=b[i];
for(long long i=;i<=n;i++){
sumcf+=cf[i];
a[i]+=sumcf;
if(a[i]<mid){
sumcf+=mid-a[i];
cf[i+*R+]-=mid-a[i];
res-=mid-a[i];
}
if(res<) return false;
}
return true;
}
int main(){
n=read();R=read();k=read();
for(int i=;i<=n;i++){
a[i]=read();
sum[i]=sum[i-]+a[i];
}
for(int i=;i<=n;i++) a[i]=query(i-R-,i+R);
for(int i=;i<=n;i++) b[i]=a[i];
l=;r=3e18;
while(l<=r){
mid=(l+r)/;
if(judge()){
l=mid+;
ans=mid;
}
else r=mid-;
}
cout<<ans;
}

100

唉~就差那么两行。果然思想要上去,还是要有AC的志向的,不能只写暴力。QwQ

/*
期望:50
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k;
int fa[],val[];
struct nond{ int u,v,w; }edge[];
struct none{ int id,xmax,ans; }ques[];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int cmp(nond a,nond b){ return a.w<b.w; }
int cmp2(none a,none b){ return a.id<b.id; }
int cmp1(none a,none b){ return a.xmax<b.xmax; }
int find(int x){
if(fa[x]==x) return x;
return fa[x]=find(fa[x]);
}
int main(){
//freopen("lpp.in","r",stdin);
freopen("Graph.in","r",stdin);
freopen("Graph.out","w",stdout);
n=read();m=read();k=read();
for(int i=;i<=m;i++){
edge[i].u=read();
edge[i].v=read();
edge[i].w=read();
}
sort(edge+,edge++m,cmp);
for(int i=;i<=k;i++){
ques[i].xmax=read();
ques[i].id=i;
}
sort(ques+,ques++k,cmp1);
int quepos=;
for(int i=;i<=n;i++) fa[i]=i;
for(int i=;i<=m;i++){
if(quepos>k) break;
int dx=find(edge[i].u);
int dy=find(edge[i].v);
if(edge[i].w>ques[quepos].xmax){
int maxn=-0x7f7f7f7f;
for(int j=;j<=n;j++)
if(find(j)==j)
maxn=max(maxn,val[fa[j]]);
while(quepos<=k&&edge[i].w>ques[quepos].xmax){
ques[quepos].ans=maxn;
quepos++;
}
}
if(dx==dy){
val[dx]+=edge[i].w;
continue;
}
fa[dy]=dx;
val[dx]+=val[dy]+edge[i].w;
val[dy]=;
}
int maxn=-0x7f7f7f7f;
for(int i=;i<=n;i++)
if(find(i)==i)
maxn=max(maxn,val[fa[i]]);
while(quepos<=k){
ques[quepos].ans=maxn;
quepos++;
}
sort(ques+,ques++k,cmp2);
for(int i=;i<=k;i++)
printf("%d\n",ques[i].ans);
}

50分暴力

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k,ans=;
int fa[],val[];
struct nond{ int u,v,w; }edge[];
struct none{ int id,xmax,ans; }ques[];
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int cmp(nond a,nond b){ return a.w<b.w; }
int cmp2(none a,none b){ return a.id<b.id; }
int cmp1(none a,none b){ return a.xmax<b.xmax; }
int find(int x){
if(fa[x]==x) return x;
return fa[x]=find(fa[x]);
}
int main(){
//freopen("lpp.in","r",stdin);
//freopen("Graph.in","r",stdin);
//freopen("Graph.out","w",stdout);
n=read();m=read();k=read();
for(int i=;i<=m;i++){
edge[i].u=read();
edge[i].v=read();
edge[i].w=read();
}
sort(edge+,edge++m,cmp);
for(int i=;i<=k;i++){
ques[i].xmax=read();
ques[i].id=i;
}
sort(ques+,ques++k,cmp1);
int quepos=;
for(int i=;i<=n;i++) fa[i]=i;
for(int i=;i<=m;i++){
if(quepos>k) break;
int dx=find(edge[i].u);
int dy=find(edge[i].v);
if(edge[i].w>ques[quepos].xmax)
while(quepos<=k&&edge[i].w>ques[quepos].xmax){
ques[quepos].ans=ans;
quepos++;
}
if(dx==dy){
val[dx]+=edge[i].w;
if(val[dx]>ans) ans=val[dx];
continue;
}
fa[dy]=dx;
val[dx]+=val[dy]+edge[i].w;
val[dy]=;
if(val[dx]>ans) ans=val[dx];
}
while(quepos<=k){
ques[quepos].ans=ans;
quepos++;
}
sort(ques+,ques++k,cmp2);
for(int i=;i<=k;i++)
printf("%d\n",ques[i].ans);
}

100

2018.11.6 PION 模拟赛的更多相关文章

  1. 2018.11.7 PION 模拟赛

    期望:100 + 80 + 75 = 255 实际:0 + 80 + 60 = 140 唉~一天比一天犯的错误智障,感觉noip要凉啊... 吓得我赶紧吃几颗药补补脑子. 奶一下大佬: lgj AK ...

  2. 2018.11.5 PION模拟赛

    期望:30 + 40 + 50 = 120 实际:30 + 50 + 40 = 120 ‘’ 思路:最重要的是发现 是完全没有用的,然后这个题目就可以转成DP来做. /* 期望的分:30 */ #in ...

  3. 2018.11.3 PION模拟赛

    期望:100    实际:100 #include<cstdio> #include<cstring> #include<iostream> #include< ...

  4. 2018 11.2 PION模拟赛

    期望:100 + 50 + 30 = 180 实际:0 + 50 + 30 =80 期望:100   实际:0 数值有负数,边界应该设为-0x7f       此处 gg /* 期望的分:50+ */ ...

  5. 2018 11.1 PION 模拟赛

    期望:250  100+100+50 实际:210   80+100+30 期望:100   实际:80 最后:两个点T了.可能是求逆元的方法太慢了,也可能是闲的又加了一个快速乘的原因. #inclu ...

  6. 11.7 NOIP模拟赛

    目录 2018.11.7 NOIP模拟 A 序列sequence(two pointers) B 锁lock(思路) C 正方形square(埃氏筛) 考试代码 B C 2018.11.7 NOIP模 ...

  7. 11/1 NOIP 模拟赛

    11.1 NOIP 模拟赛 期望得分:50:实际得分:50: 思路:暴力枚举 + 快速幂 #include <algorithm> #include <cstring> #in ...

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

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

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

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

随机推荐

  1. Cocos2d-X研究之3.0 场景切换特效汇总

    Cocos2d-X研究之3.0 场景切换特效汇总 2014-08-05      0个评论    来源:游戏编程    收藏    我要投稿 cocos2d-x 3.0中场景切换特效比较多,而且游戏开 ...

  2. 【Java_基础】java类加载过程与双亲委派机制

    1.类的加载.连接和初始化 当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载.连接.初始化三个步骤来对类进行初始化.如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为 ...

  3. (3)zabbix用户管理

    登陆zabbix 默认账号:Admin,密码:zabbix,这是一个超级管理员.登陆之后在右下角可以看到“connected as Admin“(中文版:连接为Admin). zabbix组介绍 我们 ...

  4. Kafka创建&查看topic,生产&消费指定topic消息

    启动zookeeper和Kafka之后,进入kafka目录(安装/启动kafka参考前面一章:https://www.cnblogs.com/cici20166/p/9425613.html) 1.创 ...

  5. find 命令search使用

    GNU在目录树中查找的时候,是根据所给的名字从根节点开始从左到右匹配.根据优先级规则,直到在某一个节点找到结果了才会移动到下一个文件名字. 1.找空目录 find  ./path -depth -ty ...

  6. Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍

    创建一个 Django 项目及应用 django-admin startproject orm cd orm python manage.py startapp app01 在 models.py 上 ...

  7. 关于get_magic_quotes_gpc()函数

    function sqlReplace($str) { $strResult = $str; if(!get_magic_quotes_gpc()) //如果 gpc 没有开的话 { $strResu ...

  8. 快速入门Sklearn

    主要确定sklearn的基本流程,然后把sklearn当做螺丝刀来用就行了,需要什么查什么. 基本流程 首先我们回顾一下机器学习的基本流程: 特征工程,包括了数据清洗,数据标准版化,特征选取,特征降维 ...

  9. Handler处理器和自定义Opener

    Handler处理器 和 自定义Opener opener是 urllib2.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就是模块帮我们构 ...

  10. CodeForces 149D 区间DP Coloring Brackets

    染色有三个条件: 对于每个点来说要么不染色,要么染红色,要么染蓝色 对于每对配对的括号来说,有且只有一个一边的括号被染色 相邻的括号不能染成相同的颜色 首先可以根据给出的括号序列计算出括号的配对情况, ...