期望: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. 稳定性 耗时 gc 过长问题排查 和工具

    自己的另外一篇: http://www.cnblogs.com/fei33423/p/7805186.html 偶有耗时抖动? gc 也有长耗时? fullgc 也是? 有同学反馈 swap 可能导致 ...

  2. C# IsNullOrEmpty与IsNullOrWhiteSpace

    IsNullOrEmpty:非空非NULL判断 IsNullOrWhiteSpace:非空非NULL非空格判断 后者优于前者 if (!string.IsNullOrWhiteSpace(valueE ...

  3. NOIP 2018数据点

    链接: https://pan.baidu.com/s/14jXQGPSac3b9_m5h5x2wGQ 提取码: 1cbk 好文别忘点赞!!!

  4. CentOS 7 编译 mysql 8.0.12

    步骤一:安装mysql依赖 yum install -y libaio numactl 步骤二:下载mysql社区版 wget https://dev.mysql.com/get/Downloads/ ...

  5. CentOS7.5下开发systemctl管理的自定义Nginx启动服务程序

    一.systemctl知识简介 从CentOS7 Linux开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管 ...

  6. vue2.0的基本特性

    本文目前总结的特性如下1.侦听属性和计算属性2.class的绑定3.条件渲染时的注意事项4.v-if和v-for同时使用的注意事项5.插槽6.ref,父组件调用子组件的另一种方式7.<keep- ...

  7. HTML 文件类表单元素如何限制上传类型,Accept属性设置

    需求描述:简单的控制file的选择类型 解决方法:使用HTML  input file 的accept属性控制 实例: <form action="demo_form.asp" ...

  8. python上的数据库sqlite3——插入多行数据

    学校课程上的一个知识点,一个简单的课后习题:一劳永逸实现多行数据的插入(应该是这个意思,老师也没讲清楚).直接上代码了没啥好讲的,我感觉这个思路好捞. import sqlite3 con = sql ...

  9. odoo Windows10启动debug模式报错(Process finished with exit code -1073740940 (0xC0000374))

    之前用win10系统,安装odoo总是启动debug模式启动不起来很恼火. 报错问题:Process finished with exit code -1073740940 (0xC0000374) ...

  10. LeetCode(105) Construct Binary Tree from Preorder and Inorder Traversal

    题目 Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume t ...