佳木斯集训Day5
今天是ACM赛制...本来可以400的,结果毒瘤T2模拟硬生生卡掉了我90分
T1是个大水题,找规律,5分钟AC没啥压力
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll ans,n;
bool ju;
int p;
int main()
{
cin>>p;
while(p--)
{
cin>>n;
ju=;
int t5=,t3=,t2=;
while(n!=&&(n%==||n%==||n%==))
{
if(n%==)
{
t5++;
n/=;
ju=;
}
if(n%==)
{
t3++;
n/=;
ju=;
}
if(n%==)
{
t2++;
n/=;
}
}
if(n==)
cout<<t5*+t3*+t2<<endl;
else
cout<<-<<endl; }
}
T2啊啊啊啊,双向队列,直接模拟就好了嘛,
#include <bits/stdc++.h>
#define ll long long
#define MAXN 2000500
using namespace std;
ll a[MAXN],b[MAXN],q,maxn=-,pos,nw;
ll f[MAXN],c[MAXN],manx=-,mm=;
ll md;
bool vis[MAXN];
int main()
{
ll n;
cin>>n>>q;
for(int i=;i<=n;i++)
{
scanf("%lld",&a[i]);
b[]=a[];c[]=a[];
if(i>)
{
if(a[i]>b[i-])
{
vis[i]=;
b[i]=a[i];
c[i]=b[i-];
}
else
{
c[i]=a[i];
b[i]=b[i-];
} }
if(a[i]>maxn)
{
pos=i;
maxn=a[i];
}
}
for(int i=;i<n+;i++)
f[i]=c[i+];
for(int i=;i<=q;i++)
{
ll x;
scanf("%lld",&x);
if(x<pos)
{
if(vis[x+])
printf("%lld %lld\n",c[x+],b[x+]);
// cout<<c[x+1]<<" "<<b[x+1]<<endl;
else
printf("%lld %lld\n",b[x+],c[x+]);
}
else
//cout<<maxn<<" "<<f[(x-1)%(n-1)];
printf("%d %d\n",maxn,f[(x-)%(n-)]);
}
}
T3也是类似于找规律的
#include <bits/stdc++.h>
#define MAXN 100500
using namespace std;
int a[MAXN],b[MAXN],ans,x,start[MAXN],ed[MAXN];
int n,m;
int main()
{
cin>>n>>m;
for(int i=;i<=m;i++)
{
cin>>a[i];
b[a[i]]++;
if(!start[a[i]])
start[a[i]]=i;
}
for(int i=m;i>=;i--)
{
if(!ed[a[i]])
ed[a[i]]=i;
}
for(int i=;i<=n;i++)
{
if(!b[i])
{
if(i!=&&i!=n)
ans+=;
else
ans+=;
}
else
{
if(ed[i-]<start[i]&&i!=)
ans++;
if(ed[i+]<start[i]&&i!=n)
ans++;
}
}
cout<<ans<<endl;
}
T4是A层的F题,他们上午考的,当时开考的时候我还在想T2就有好多人AC直接吓死我
我看了看题,发现直接是一个初中的因式分解题,挺水的,然后直接过的
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,p,k;
ll a[];
ll c=,ans=;
int main()
{ cin>>n>>p>>k;
for(ll i=;i<=n;i++)
{
cin>>a[i];
a[i]=(a[i]*a[i]%p*a[i]%p*a[i]-k*a[i]%p+p)%p;
}
sort(a+,a++n);
for(ll i=;i<=n;i++)
{
if(a[i-]==a[i])
{
c++;
ans+=c;
}
else
c=;
}
cout<<ans<<endl;
}
T5正解权值线段树,其实和本身的线段树没什么大的区别,题基本上是裸的权值线段树
#include <bits/stdc++.h>
#define ls k<<1
#define rs k<<1|1
#define mid (l+r)/2
using namespace std;
const int MAXN=1e6+;
int m[MAXN<<],ans[MAXN<<],a[MAXN<<];
int n,m1,q,x,a1,b,c;
struct Tree{
int sign,sum;
}t[];
void up(int k)
{
t[k].sum=min(t[ls].sum,t[rs].sum);
}
void build(int k,int l,int r)
{
if(l==r)
{
t[k].sum=;
return ;
}
build(ls,l,mid);
build(rs,mid+,r);
up(k);
}
void signdown(int k)
{
if(t[k].sign==)
return ;
t[ls].sum+=t[k].sign;
t[rs].sum+=t[k].sign;
t[ls].sign+=t[k].sign;
t[rs].sign+=t[k].sign;
t[k].sign=;
} void add(int k,int l,int r,int from,int to,int v)
{
if(l>=from&&r<=to)
{
t[k].sign+=v;
t[k].sum+=v;
return ;
}signdown(k);
if(from<=mid)
add(ls,l,mid,from,to,v);
if(to>mid)
add(rs,mid+,r,from,to,v);
up(k);
}
int ask(int k,int l,int r)
{
if(t[k].sum>=)return -;
if(l==r)return l;
signdown(k);
if(t[rs].sum<)return ask(rs,mid+,r);
else return ask(ls,l,mid);
}
int main()
{
scanf("%d%d%d",&n,&m1,&q);
build(,,);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
ans[a[i]]++;
if(ans[a[i]]==)
add(,,,a[i],a[i],-);
add(,,,,a[i],-);
}
for(int i=;i<=m1;i++)
{
scanf("%d",&m[i]);
add(,,,,m[i],);
}
for(int i=;i<=q;i++)
{
scanf("%d%d%d",&a1,&b,&c);
if(a1==)
{
add(,,,,a[b],);
ans[a[b]]--;
if(ans[a[b]]==)
add(,,,a[b],a[b],);
a[b]=c;
add(,,,,a[b],-);
ans[a[b]]++;
if(ans[a[b]]==)
add(,,,a[b],a[b],-);
}
else
{
add(,,,,m[b],-);
m[b]=c;
add(,,,,m[b],);
}
printf("%d\n",ask(,,));
}
return ;
}
T6是个DP,不断的拓展,实在不会,题解可以看得懂,就是代码敲不出来,2333
佳木斯集训Day5的更多相关文章
- Loj #6073.「2017 山东一轮集训 Day5」距离
Loj #6073.「2017 山东一轮集训 Day5」距离 Description 给定一棵 \(n\) 个点的边带权的树,以及一个排列$ p\(,有\)q $个询问,给定点 \(u, v, k\) ...
- 「2017 山东一轮集训 Day5」苹果树
「2017 山东一轮集训 Day5」苹果树 \(n\leq 40\) 折半搜索+矩阵树定理. 没有想到折半搜索. 首先我们先枚举\(k\)个好点,我们让它们一定没有用的.要满足这个条件就要使它只能和坏 ...
- 佳木斯集训Day1
23333第一次写博客 其实在佳木斯集训之前我都已经两三个月没打代码了 在佳木斯的时候前几天真心手生,导致了前几次考试考的很差... D1的考试还是比较良心的,T1是一道大模拟,直接枚举最后几位是00 ...
- 2019暑期金华集训 Day5 树上数据结构
自闭集训 Day5 树上数据结构 前置知识 点分治 边分治 树链剖分 LCT Top Tree LCT时间复杂度 线段树每次查询是严格\(\log n\)的,然而splay维护连续段的时候,如果每次查 ...
- 2019暑期金华集训 Day5 生成函数
自闭集训 Day5 生成函数 一般生成函数 无脑地把序列变成多项式: \[ \{a_i\}\rightarrow A(x)=\sum_{n} a_nx^n \] 形式幂级数 生成函数是一种形式幂级数. ...
- 杭州集训Day5
下面是Day5的题目!(其实都咕了好几天了 100+70+40=210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述 有一个n*n的王国城堡地图上,皇后XY喜欢看骑士之间的战斗, ...
- 「疫期集训day5」火焰
我们就像一把穿刺敌人的利刃,把敌人开肠破肚----凡尔登高地前气势汹汹的德军 今天没有考试,挺好,有时间自己做题了 今天主要复习+学习了数据结构,列了个表: 已完成:单调队列,线段树,set/vect ...
- 2022寒假集训day5
day5 五道栈的题加上字符串. 单调队列. T1 表达式括号匹配 洛谷P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@&q ...
- [日常训练]常州集训day5
T1 Description 小$W$和小$M$一起玩拼图游戏啦~ 小$M$给小$M$一张$N$个点的图,有$M$条可选无向边,每条边有一个甜蜜值,小$W$要选$K$条边,使得任意两点间最多有一条路径 ...
随机推荐
- JavaScript面试核心考点(精华)
引言 Javascript是前端面试的重点,本文重点梳理下 Javascript 中的常考基础知识点,然后就一些容易出现的题目进行解析.限于文章的篇幅,无法将知识点讲解的面面俱到,本文只罗列了一些重难 ...
- 我把代码开源、托管到了GitHub、码云
前言 学习了那么多知识点,写了那么多代码,一直都没有时间整理,之前都是新学一个知识点就在同一个工程项目中进行实践测试,导致这个工程越来越臃肿.越来越乱,连我自己都快看不懂了... 这段时间整理了部分代 ...
- JavaWeb知识点
- SQL系统优化
1 系统优化介绍 在我们的项目中,由于客户的使用时间较长或客户的数据量大,造成系统运行速度慢,系统性能下降就容易造成数据库阻塞.这是个非常痛苦的事情,用户的查询.新增.修改等需要花很多时间,甚至造成系 ...
- 计算机组成原理第五章(中央处理器CPU)
---恢复内容开始--- 指令周期(取指令.分析指令到执行完该指令所需的全部时间) 机器周期通常又称CPU周期 通常把一条指令周期分成若干个机器周期,每个机器周期完成一个基本操作 以主存的工作周期(存 ...
- 奇袭(单调栈+分治+桶排)(20190716 NOIP模拟测试4)
C. 奇袭 题目类型:传统 评测方式:文本比较 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目描述 由于各种原因,桐人现在被困在Under World(以下简称UW)中,而 ...
- 【深入浅出-JVM】(8):TLAB
概念 TLAB(Thread Local Allocation Buffer)线程本地分配缓冲区(线程私有分配区,私有分配,公共查看),占用 Eden 区(缺省 Eden 的1%),默认开启,JVM ...
- [ERROR]:INST-07008: Oracle 主目录(O) 位置的验证失败。用户没有创建主目录/实例位置的权限
安装weblogic12.1.3.0时,输入的安装命令是: 老是报这个错误. 百度半天好像没人报过这错……看来只有我这么粗心了…… 后来发现wls.rsp里面的Oracle_HOME指向目录错误,修改 ...
- //Thread::Stop();
//Thread::Stop(); Thread::StopSoon();
- sklearn使用技巧
sklearn使用技巧 sklearn上面对自己api的解释已经做的淋漓尽致,但对于只需要短时间入手的同学来说,还是比较复杂的,下面将会列举sklearn的使用技巧. 预处理 主要在sklearn.p ...