今天是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的更多相关文章

  1. Loj #6073.「2017 山东一轮集训 Day5」距离

    Loj #6073.「2017 山东一轮集训 Day5」距离 Description 给定一棵 \(n\) 个点的边带权的树,以及一个排列$ p\(,有\)q $个询问,给定点 \(u, v, k\) ...

  2. 「2017 山东一轮集训 Day5」苹果树

    「2017 山东一轮集训 Day5」苹果树 \(n\leq 40\) 折半搜索+矩阵树定理. 没有想到折半搜索. 首先我们先枚举\(k\)个好点,我们让它们一定没有用的.要满足这个条件就要使它只能和坏 ...

  3. 佳木斯集训Day1

    23333第一次写博客 其实在佳木斯集训之前我都已经两三个月没打代码了 在佳木斯的时候前几天真心手生,导致了前几次考试考的很差... D1的考试还是比较良心的,T1是一道大模拟,直接枚举最后几位是00 ...

  4. 2019暑期金华集训 Day5 树上数据结构

    自闭集训 Day5 树上数据结构 前置知识 点分治 边分治 树链剖分 LCT Top Tree LCT时间复杂度 线段树每次查询是严格\(\log n\)的,然而splay维护连续段的时候,如果每次查 ...

  5. 2019暑期金华集训 Day5 生成函数

    自闭集训 Day5 生成函数 一般生成函数 无脑地把序列变成多项式: \[ \{a_i\}\rightarrow A(x)=\sum_{n} a_nx^n \] 形式幂级数 生成函数是一种形式幂级数. ...

  6. 杭州集训Day5

    下面是Day5的题目!(其实都咕了好几天了 100+70+40=210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述 有一个n*n的王国城堡地图上,皇后XY喜欢看骑士之间的战斗, ...

  7. 「疫期集训day5」火焰

    我们就像一把穿刺敌人的利刃,把敌人开肠破肚----凡尔登高地前气势汹汹的德军 今天没有考试,挺好,有时间自己做题了 今天主要复习+学习了数据结构,列了个表: 已完成:单调队列,线段树,set/vect ...

  8. 2022寒假集训day5

    day5 五道栈的题加上字符串. 单调队列. T1 表达式括号匹配   洛谷P1739 题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@&q ...

  9. [日常训练]常州集训day5

    T1 Description 小$W$和小$M$一起玩拼图游戏啦~ 小$M$给小$M$一张$N$个点的图,有$M$条可选无向边,每条边有一个甜蜜值,小$W$要选$K$条边,使得任意两点间最多有一条路径 ...

随机推荐

  1. ECShop安装问题

    Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG 在安装Ecshop的时候,遇到两个问题: 1.Strict Standards: Non-static ...

  2. C# Invoke

    最近在看一个项目,其中用到异步进程——控件Invoke,这里将具体用法介绍如下: 以进度条为例: //声明委托 delegate void SetProgressBarEnabledDelegate( ...

  3. flask高级编程 LocalStack 线程隔离

    转:https://www.cnblogs.com/wangmingtao/p/9372611.html   30.LocalStack作为线程隔离对象的意义 30.1 数据结构 限制了某些能力 30 ...

  4. 从后端到前端之Vue(一)写个表格试试水

    目录: 1.脚本式开发. 2.工程化开发 3.工程化和脚本的区别 4.来个table试试水 4,1.目标 4.2.思路 4.3.设计与编码 4.4.效果 5.业务分离 6.功能拓展——个性化设置    ...

  5. Java编程思想:XML

    /* 本次实验需要在www.xom.nu上下载XOM类库 */ import nu.xom.*; import java.io.BufferedOutputStream; import java.io ...

  6. java调用新浪接口根据Ip查询所属地区

    import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import ...

  7. golang开发:类库篇(四)配置文件解析器goconfig的使用

    为什么要使用goconfig解析配置文件 目前各语言框架对配置文件书写基本都差不多,基本都是首先配置一些基础变量,基本变量里面有环境的配置,然后通过环境变量去获取该环境下的变量.例如,生产环境跟测试环 ...

  8. 个人永久性免费-Excel催化剂功能第66波-数据快速录入,预定义引用数据逐字提示

    在前面好几波的功能中,为数据录入的规范性做了很大的改进,数据录入乃是数据应用之根,没有完整.干净的数据源,再往下游的所有数据应用场景都是空话.在目前IT化进程推进了20多年的现状,是否还仍有必要在Ex ...

  9. python的socket模块

    sk.bind(address) s.bind(address) 将套接字绑定到地址.address地址的格式取决于地址族.在AF_INET下,以元组(host,port)的形式表示地址. sk.li ...

  10. mysql8.0.15创建数据库和是删除数据库及删除用户

    ---恢复内容开始--- 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) 1.首先安装mysql8.0.15 2.Mys ...