佳木斯集训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$条边,使得任意两点间最多有一条路径 ...
随机推荐
- ECShop安装问题
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG 在安装Ecshop的时候,遇到两个问题: 1.Strict Standards: Non-static ...
- C# Invoke
最近在看一个项目,其中用到异步进程——控件Invoke,这里将具体用法介绍如下: 以进度条为例: //声明委托 delegate void SetProgressBarEnabledDelegate( ...
- flask高级编程 LocalStack 线程隔离
转:https://www.cnblogs.com/wangmingtao/p/9372611.html 30.LocalStack作为线程隔离对象的意义 30.1 数据结构 限制了某些能力 30 ...
- 从后端到前端之Vue(一)写个表格试试水
目录: 1.脚本式开发. 2.工程化开发 3.工程化和脚本的区别 4.来个table试试水 4,1.目标 4.2.思路 4.3.设计与编码 4.4.效果 5.业务分离 6.功能拓展——个性化设置 ...
- Java编程思想:XML
/* 本次实验需要在www.xom.nu上下载XOM类库 */ import nu.xom.*; import java.io.BufferedOutputStream; import java.io ...
- java调用新浪接口根据Ip查询所属地区
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import ...
- golang开发:类库篇(四)配置文件解析器goconfig的使用
为什么要使用goconfig解析配置文件 目前各语言框架对配置文件书写基本都差不多,基本都是首先配置一些基础变量,基本变量里面有环境的配置,然后通过环境变量去获取该环境下的变量.例如,生产环境跟测试环 ...
- 个人永久性免费-Excel催化剂功能第66波-数据快速录入,预定义引用数据逐字提示
在前面好几波的功能中,为数据录入的规范性做了很大的改进,数据录入乃是数据应用之根,没有完整.干净的数据源,再往下游的所有数据应用场景都是空话.在目前IT化进程推进了20多年的现状,是否还仍有必要在Ex ...
- python的socket模块
sk.bind(address) s.bind(address) 将套接字绑定到地址.address地址的格式取决于地址族.在AF_INET下,以元组(host,port)的形式表示地址. sk.li ...
- mysql8.0.15创建数据库和是删除数据库及删除用户
---恢复内容开始--- 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 1.首先安装mysql8.0.15 2.Mys ...