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

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

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

考试先拿满了暴力分(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. 理解LSTM网络--Understanding LSTM Networks(翻译一篇colah's blog)

    colah的一篇讲解LSTM比较好的文章,翻译过来一起学习,原文地址:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ ,Posted ...

  2. 【Sqlserver】查询结果导出excel

    1.右键数据库——>任务——>导出数据,打开SQL Server导入和导出向导: 2.选择当前数据库,填写用户名,密码,下一步: 3.选择目标类型 excel,选择导出模板,下一步: 4. ...

  3. 前端之CSS基础及使用方法

    CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS语法 CSS实例 ...

  4. 深入理解SpringCloud之Gateway

    虽然在服务网关有了zuul(在这里是zuul1),其本身还是基于servlet实现的,换言之还是同步阻塞方式的实现.就其本身来讲它的最根本弊端也是再此.而非阻塞带来的好处不言而喻,高效利用线程资源进而 ...

  5. guava缓存批量获取的一个坑

    摘要 Guava Cache是Google开源的Java工具集库Guava里的一款缓存工具,一直觉得使用起来比较简单,没想到这次居然还踩了一个坑 背景 功能需求抽象出来很简单,就是将数据库的查询sth ...

  6. eclipse中Tomcat version 9.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5, 6, 7, and 8 Web modules

    eclipse中导入了一个别人的项目,运行时提示没有可以使用的服务器,如下: 查看了下项目属性设置中的服务器,还是提示没有可用服务器: 尝试对部署在已有服务器下的项目Add and Remove... ...

  7. Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker

    今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...

  8. 基于Spring AOP实现的权限控制

    1.AOP简介 AOP,面向切面编程,往往被定义为促使软件系统实现关注点的分离的技术.系统是由许多不同的组件所组成的,每一个组件负责一块特定的功能.除了实现自身核心功能之外,这些组件还经常承担着额外的 ...

  9. sqlmap实战-1

    sqlmap实战-1 检测和利用sql注入 python2 sqlmap.py -u "[URL_SQL注入点]" [--batch] --batch:自动选择sqlmap默认的选 ...

  10. Vue-CLI项目路由案例汇总

    0901自我总结 Vue-CLI项目路由案例汇总 router.js import Vue from 'vue' import Router from 'vue-router' import Cour ...