这次考试又一次暴露了我很大的问题。

首先做的比较好的是这几次考试一分没挂,

但是,这也体现了更大的问题,那就是我的实力似乎也仅限于此了。

考试先拿满了暴力分(100+0+50),然后看了看T2没看懂,打了个记忆化搜索,只有10分,此时只过了不到2个小时

没看懂题也就罢了,那真的是我菜,可是接下来,我没有再去深入思考T3,skyh考场上切掉的题,我连最基本的思路都没有,

可能这个题放在第一题,我就切了。

这不是一道难题,考完试我知道它是个容斥后,也自己推出来了。

可是T3只拿部分分的思维禁锢了我,我自己漫无目的地思考的结果,不过是一场空。

只是因为在考试后期,我没有了压力,自以为稳拿的150分已经够了。

真的。。。够吗?

考试的有效思考时间,与成绩正相关。

我可以允许自己爆零,但我不喜欢整场考试无所事事。

比你强的人,正常考试都在思考,而你却提前卸甲,这也就是之所以比你强的原因吧。

可能你有一个还算好看的名次,所以呢?

说实话,我记得建设城市那道题,还不算水,如果放在平时刷题,一个半小时我是不可能做出来的,但在考场上,我确实切掉了。

这就是,所谓压力下的动力吧。

一个人可以接受失败,但决不能自甘堕落。

你不够强大,这是事实。

但如果你一直畏难,就永远不能够强大。

你不是天才,但也不能自甘平庸。

你仍需历练

说考试

T1 DP过了

T2 题意转换->给定一个网格,询问从每个格子走到边界的所有路径中最大值中最小的。

跑最小生成树即可。

 #include<bits/stdc++.h>
#define int long long
using namespace std;
const int root=;
const int tmpx[]={,,,-},tmpy[]={,-,,};
struct edge{
int st,ed,val;
bool ok;
friend bool operator < (const edge a,const edge b)
{
return a.val<b.val;
}
}E[];
int cnt,head[],nxt[],to[],pnt,f[],w[],n,m;
int d[],h[][];
int pt(int x,int y)
{
if(!x||!y||x==n+||y==m+)return root;
return (x-)*m+y;
}
void Add(int u,int v,int val)
{
to[++pnt]=v;
nxt[pnt]=head[u];
w[pnt]=val;
head[u]=pnt;
return ;
}
int find(int x)
{
if(f[x]==x)return x;
else return f[x]=find(f[x]);
}
void merge(int a,int b)
{
int fa=find(a),fb=find(b);
f[fa]=fb;
return ;
}
void dfs(int x,int fa)
{
for(int i=head[x];i;i=nxt[i])
{
int y=to[i];
if(y==fa)continue;
d[y]=max(d[x],w[i]);
dfs(y,x);
}
return ;
}
void BuildAndWork()
{
for(int i=;i<=root;i++)f[i]=i;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
for(int k=;k<;k++)
{
E[++cnt].st=pt(i,j);
E[cnt].ed=pt(i+tmpx[k],j+tmpy[k]);
E[cnt].val=max(h[i][j],h[i+tmpx[k]][j+tmpy[k]]);
}
}
sort(E+,E+cnt+);
for(int i=;i<=cnt;i++)
{
int a=E[i].st,b=E[i].ed;
if(find(a)==find(b))continue;
Add(a,b,E[i].val);Add(b,a,E[i].val);
merge(a,b);
}
dfs(root,);
}
signed main()
{
scanf("%lld%lld",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
scanf("%lld",&h[i][j]);
BuildAndWork();
int p=;
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
int now=d[++p];
printf("%lld ",now-h[i][j]);
}
puts("");
}
return ;
}

code

T3  我最想说的。

考场上一直以为是个数据结构题。

可是这是互质啊,为什么不想想数学呢?

这只是个简单的容斥啊。

想到容斥,一切就迎刃而解。

想不到呢?呵呵。

直接容斥即可。

$O(m\sqrt{max\{x\}})$更新即可。

 #include<bits/stdc++.h>
#define MAXN 500005
#define cri const rigister int
using namespace std;
int t[MAXN],firprime[MAXN];
int prime[MAXN],x[MAXN],val[MAXN],bin[MAXN],bitnum[MAXN];
bool vst[MAXN];
int lm[];
int kx;
void pre()
{
for(register int i=;i<=;i++)
{
if(!firprime[i])
prime[++prime[]]=i,firprime[i]=i;
for(register int j=;j<=prime[]&&i*prime[j]<=;j++)
{
firprime[i*prime[j]]=prime[j];
if(!(i%prime[j]))break;
}
}
return ;
}
void Get(register int x)
{
lm[]=;
while(x!=)
{
register int now=firprime[x];
lm[++lm[]]=now;
while(x%now==)x/=now;
}
return ;
}
int main()
{
pre();
int n,m,siz=;
long long ans=;
val[]=;
for(int i=;i<=;i++)bin[<<(i-)]=i;
for(int i=;i<=(<<-);i++)
{
int num=,st=i;
while(st)st-=st&-st,++num;
bitnum[i]=num;
}
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d",&x[i]);
while(m--)
{
int opt;
scanf("%d",&opt);
if(!vst[opt])
{
Get(x[opt]);
kx=siz;
for(register int i=;i<=(<<lm[])-;i++)
{
val[i]=val[i^(i&-i)]*lm[bin[i&-i]];
if(bitnum[i]&)kx-=t[val[i]];
else kx+=t[val[i]];
}
vst[opt]=;
int sx=sqrt(x[opt]);
for(register int i=;i<=sx;i++)
if(x[opt]%i==)
{
if(i*i==x[opt])t[i]++;
else t[i]++,t[x[opt]/i]++;
}
t[x[opt]]++;
siz++;
ans+=kx;
}
else
{
Get(x[opt]);
vst[opt]=;
int sx=sqrt(x[opt]);
for(register int i=;i<=sx;i++)
if(x[opt]%i==)
{
if(i*i==x[opt])t[i]--;
else t[i]--,t[x[opt]/i]--;
}
t[x[opt]]--;siz--;
kx=siz;
for(register int i=;i<=(<<lm[])-;i++)
{
val[i]=val[i^(i&-i)]*lm[bin[i&-i]];
if(bitnum[i]&)kx-=t[val[i]];
else kx+=t[val[i]];
}
ans-=kx;
}
printf("%lld\n",ans);
}
return ;
}

code

加油

NOIP模拟测试23的更多相关文章

  1. NOIP模拟测试23「mine·water·gcd」

    mine 题解 一道比较水的dp 考试因为初始化挂掉了只有$80$分 代码有注释 #include<bits/stdc++.h> using namespace std; //无脑dp # ...

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

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

  3. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  4. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  5. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

  6. NOIP模拟测试17&18

    NOIP模拟测试17&18 17-T1 给定一个序列,选取其中一个闭区间,使得其中每个元素可以在重新排列后成为一个等比数列的子序列,问区间最长是? 特判比值为1的情况,预处理比值2~1000的 ...

  7. NOIP模拟测试1(2017081501)

    好,今天是cgg第一次举行模拟测试,希望各位支持. 时间限制:2小时 题目链接: 题目一:水得都没名字了 题目二:车站 题目三:选数 不要觉得2小时太少,我的题目很良心,都很简单. 答案可以在模拟测试 ...

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

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

  9. 2019.8.14 NOIP模拟测试21 反思总结

    模拟测试20的还没改完先咕着 各种细节问题=错失190pts T1大约三分钟搞出了式子,迅速码完,T2写了一半的时候怕最后被卡评测滚去交了,然后右端点没有初始化为n…但是这样还有80pts,而我后来还 ...

随机推荐

  1. 排坑日记之批量从库IO进程停止

    早上刚睁眼,看到了一堆数据库告警的短信,其中一个内容如下: Problem started at 05:02:58 on 2019.10.12 Problem name: Slave is stopp ...

  2. Spring Boot 二十个注解

    Spring Boot 二十个注解 占据无力拥有的东西是一种悲哀. Cold on the outside passionate on the insede. 背景:Spring Boot 注解的强大 ...

  3. 基于 HTML5 的工控物联网的隧道监控实战

    前言 监控隧道内的车道堵塞情况.隧道内的车祸现场,在隧道中显示当前车祸位置并在隧道口给与提示等等功能都是非常有必要的.这个隧道 Demo 的主要内容包括:照明.风机.车道指示灯.交通信号灯.情报板.消 ...

  4. Kubernetes+Docker+Istio 容器云实践

    随着社会的进步与技术的发展,人们对资源的高效利用有了更为迫切的需求.近年来,互联网.移动互联网的高速发展与成熟,大应用的微服务化也引起了企业的热情关注,而基于Kubernetes+Docker的容器云 ...

  5. Flutter 修改SDK 路径出现的问题

    更换Flutter SDK 路径之后出现的问题. 解决方法:flutter packages upgrade. 替换: 替换这两个文件里的路径. 同时修改电脑配置文件里的路径: open -a Tex ...

  6. Git推送到多个远程仓库

    Git推送到多个远程仓库 Grey 原文地址 准备工作 在码云和Github上分别新建两个不包括任何文件的空仓库(若是两个已经有文件的仓库,请参见关联已经存在的项目) https://github.c ...

  7. 常用函数-Time

    #pragma pack(push,1) /* 在这中间定义的结构体,已单字节对齐 */ #pragma pack(pop) /************************************ ...

  8. vue 页面滚动到原位置

    哈哈哈,昨天登QQ的时候,意外发现有人看了我写的博客,居然还加了我,这就激起了我内心的小波澜啊 公司最近在做电商,用的前端框架依然是VUE 矩MAX(微信公众号)可以搜的到哦,安卓商店或苹果AppSt ...

  9. PowerShell渗透--Empire(三)

    会话注入 我们可以使用usemodule management/psinject模块来进程注入,获取权限 设置下Listeners和ProcID这2个参数,这里的ProcID就是之前的CMD的pid, ...

  10. fullpage.js报如下错的解决办法

    控制台报错:fullPage: Fullpage.js version 3 has changed its license to GPLv3 and it requires a `licenseKey ...