T1 嘟嘟噜

上来一看数据范围1e9就蒙蔽,然后不知所措的打了一个 $ O(n)$的无脑算法,由于本人真的脑小,导致O(n)的柿子推了好长时间,导致心态崩了,然后........ 今天能明白了log的算法,算是约瑟夫问题弄明白了,没有想到跳跃式的竟然可以log求。

#include<bits/stdc++.h>
using namespace std;
#define re register
inline int read()
{
int x=,f=;char cc=getchar();
while(cc>''||cc<''){if(cc=='-')f=-;cc=getchar();}
while(cc>=''&&cc<=''){x=(x<<)+(x<<)+cc-'';cc=getchar();}
return x*f;
}
const int maxn=;
int n,k,m,S;
int ans[maxn];
queue<int>q;
set<int>pc,fc;
stack<int>s;
int main()
{
n=read(),k=read(),m=read(),S=read();
for(int i=,u;i<=m;i++)
{
u=read();
ans[u]=-;
}
q.push(S);
for(re int i=;i<=n;++i)
if(i!=S&&ans[i]!=-)
{
if(i&)pc.insert(i);
else fc.insert(i);
}
while(q.size()&&(!pc.empty()||!fc.empty()))
{
int x=q.front();q.pop();
if((x&)==(k&))
{
for(auto it=pc.lower_bound(max(x-k+,k-x));it!=pc.end()&&*it<x+k;++it)
{
int zz=(k-(abs(x-*it)+))>>;
if(zz>n-max(*it,x))break;
q.push(*it);
ans[*it]=ans[x]+;
s.push(*it);
}
while(s.size())pc.erase(s.top()),s.pop();
continue;
}
for(auto it=fc.lower_bound(max(x-k+,k-x));it!=fc.end()&&*it<x+k;++it)
{
int zz=(k-(abs(x-*it)+))>>;
if(zz>n-max(*it,x))break;
ans[*it]=ans[x]+;
q.push(*it);
s.push(*it);
}
while(s.size())fc.erase(s.top()),s.pop();
}
for(re int i=;i<=n;++i)
{
if(!ans[i]&&(i!=S))ans[i]=-;
printf("%d ",ans[i]);
}
return ;
}

T2 天才绅士少女助手克里斯蒂娜

看题就发现是原题,然后想到当时自己连题解都没有颓,就崩了,然后想到当时就是wba大神造的数据,我就感到了一丝不妙,其实就是拆一下柿子就出来了!

然后我就怀着爆零的心情去看T3

#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read()
{
int f=,x=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
const int maxn=;
const int mod=;
int n,m;
struct BIT
{
int tr[maxn];
inline int lowbit(int x){return x&(-x);}
inline int query(int x)
{
int res=;
while(x)
{
(res+=tr[x]+mod)%=mod;
x-=lowbit(x);
}
return res;
}
inline void update(int x,int val)
{
while(x<=n)
{
(tr[x]+=val+mod)%=mod;
x+=lowbit(x);
}
return ;
}
}t1,t2,t3;
int a1[maxn],a2[maxn],a3[maxn]; struct node
{
int x,y;
inline void make(int _x,int _y){x=_x,y=_y;return ;}
}s[maxn]; signed main()
{
//freopen("inputs2.in","r",stdin);
n=read();m=read();
for(int i=,x,y;i<=n;i++)
{
x=read(),y=read();
s[i].make(x,y);
}
for(int i=;i<=n;i++)
{
a1[i]=(s[i].x*s[i].x%mod)%mod;
a2[i]=(s[i].y*s[i].y%mod)%mod;
a3[i]=(s[i].x*s[i].y%mod)%mod;
t1.update(i,a1[i]);
t2.update(i,a2[i]);
t3.update(i,a3[i]);
}
int opt=;
while(m--)
{
opt=read();
if(opt==)
{
int p=read(),x=read(),y=read();
s[p].x=x,s[p].y=y;
int c1=a1[p],c2=a2[p],c3=a3[p];
a1[p]=x*x%mod,a2[p]=y*y%mod;a3[p]=x*y%mod;
t1.update(p,a1[p]-c1);
t2.update(p,a2[p]-c2);
t3.update(p,a3[p]-c3);
}
else
{
int l=read(),r=read();
int ans=;
ans=((t1.query(r)-t1.query(l-)+mod)%mod*(t2.query(r)-t2.query(l-)+mod)%mod+mod)%mod;
int tt=((t3.query(r)-t3.query(l-)+mod)%mod+mod)%mod;
ans=((ans-tt*tt%mod+mod)%mod+mod)%mod;
printf("%lld\n",ans);
}
}
return ;
}

T3

就是一个LCIS,当时学的时候还被人消费来着(LSC  LCIS)然后在看出是dp之后由于剩的时间过少,还想调T2所以直接打的爆搜,按说应该可以20分,但是只有10分,

3
考虑 DP. 设状态 dp(i, j) 表示 a 序列考虑到 i, b 序列考虑到 j 并且必须选 b j 的最
大长度. 当 a i = b j 时, 显然有转移 dp(i, j) = max k<j,b k <b j {dp(i − 1, k)} + 1.
于是从小到大枚举 j, 维护 max k<j,b k <a i {dp(i − 1, k)}, 直接转移即可.
时间复杂度 O(nm).

由于前几场考试T1过于水,导致之前的T1都切了,而且一般20分钟之内就可以A,所以这次T1拖了1个小时,就心态炸了,还是要历练!@……@

#include<bits/stdc++.h>
using namespace std;
#define re register
#define LL long long
template<class T>
inline void read(T &x)
{
T f=;x=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
x=x*f;
}
int n,m;
const int maxn=;
LL a[maxn],b[maxn];
bool vis[maxn];
int ch[maxn],tot;
int dp[maxn][maxn];
int pre[maxn][maxn];
int sta[maxn],topp;
inline void ba(re int x,re int y)
{
if(x==||y==)return;
re int qq=pre[x][y];
if(y!=qq)sta[++topp]=b[y];
ba(x-,qq);
}
signed main()
{
//freopen("inputs3.in","r",stdin);
read(n);
for(re int i=;i<=n;i++)
read(a[i]);
read(m);
for(re int i=;i<=m;i++)
read(b[i]);
for(re int i=;i<=n;i++)
{
int res=,id=;
if(b[]<b[])res=dp[i-][],id=;
for(re int j=;j<=m;j++)
{
if(a[i]==b[j])
{
pre[i][j]=id;
dp[i][j]=res+;
}
else
{
pre[i][j]=j;
dp[i][j]=dp[i-][j];
}
if(b[j]<a[i])
{
if(res<=dp[i-][j])
{
res=dp[i-][j],id=j;
}
}
}
}
int ans=,id=;
for(re int i=;i<=m;i++)
{
if(dp[n][i]>=ans)ans=dp[n][i],id=i;
}
printf("%d\n",dp[n][id]);
ba(n,id);
while(topp)
{
printf("%d ",sta[topp]);
topp--;
}
return ;
}

1005 csp-s 60 凉凉的更多相关文章

  1. PKUWC2019 凉凉记

    请配合 BGM 食用. 菜就是菜,说什么都是借口. Day 0 前一天先到纪中报道,高铁上打了一会单机膈膜,然后又打了一遍 \(FFT\) 板子,就到了中山. 到了后,发现气温骤然升高,马上 脱 换裤 ...

  2. NOIP2018凉凉记

    首先声明一下,我去不了TG,因为我太菜了GD的某教授把我打到PJ了…… 虽然就我这实力普及都不一定1= 不管了,这次是普及,就当扎实基础了.反正HF的 $\text{hhz}$ 也考PJ,见个面多好啊 ...

  3. 世界最大BT服务器本周死了三回 海盗湾要凉凉?

    想當初,我是受到BT網站海盜灣的啟發,開發了一個DHT下載網站:http://www.ibmid.com,有一段時間通宵編程,理解此個協議. 海盗湾(The Pirate Bay)是世界上最大的 BT ...

  4. SDOI2018凉凉记

    好久没有更博客了...因为我在颓废学习.. SDOI一轮结束了...我也该回来学地生了... 凉凉 ————————————————我是分割线———————————————— Day0 愉快感冒的Da ...

  5. AHOI2019N省联考凉凉记

    博主并未时空穿越,本文没有对选手造成恐慌 DAY0 这已经是我第四次省选了,时间真快啊,怀念三年前毫无压力的省选,考完以后如果有时间并且没退役的话可能会陆续搬以前写在别处的游记(主要是2018年的游记 ...

  6. 最近Android真的凉凉了?

    都说Android最近行情不好,很多人都遇到瓶颈或放弃或转行.其实这种情况15年16年也是如此,相对比之下,个人认为今年比去年好多了,Android接下来将会走向复苏的春天. 自从Google开始推出 ...

  7. 凉凉了,Eureka 宣布闭源,Spring Cloud 何去何从?

    今年 Dubbo 活了,并且被 Apache 收了.同时很不幸,Spring Cloud 下的 Netflix Eureka 组件项目居然宣布闭源了.. 已经从 Dubbo 迁移至 Spring Cl ...

  8. 凉凉了,Eureka 2.x 停止维护,Spring Cloud 何去何从?

    今年 Dubbo 活了,并且被 Apache 收了.同时很不幸,Spring Cloud 下的 Netflix Eureka 组件项目居然宣布停止开发了.. 已经从 Dubbo 迁移至 Spring ...

  9. 字节跳动Android面试凉凉,挥泪整理面筋,你不看看吗?

    想在金九银十找工作的现在可以开始准备了,这边给大家分享一下面试会遇到的问题. 找工作还是需要大家不要担心,由于我们干这一行的接触人本来就不多,难免看到面试官会紧张,主要是因为怕面试官问的答不上来,答不 ...

随机推荐

  1. Vue入门教程 第四篇 (属性与事件)

    computed计算属性 计算属性(computed)在处理一些复杂逻辑时是很有用的.它的定义方式与methods类似. <div id="app"> <div& ...

  2. SparkStreaming整合Flume的pull报错解决方案

    先说下版本情况: Spark 2.4.3 Scala 2.11.12 Flume-1.6.0 Flume配置文件: simple-agent.sources = netcat-source simpl ...

  3. python编程基础之三十二

    成员方法:成员方法就是一个函数,只是作用域在类内,并且第一个参数必须是self,self代表当前对象, class Dog(object): def bark(self): #成员方法,第一个参数必须 ...

  4. GUI篇 tkinter (Label,Button)之一

    import tkinterfrom tkinter import * # tkinter._test() # 实例化一个窗口对象base = tkinter.Tk()# 修改窗口的标题base.wm ...

  5. C语言I作业004

    这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业 我在这个课程的目标是 掌握使用for循环语句实现指定次数的循环程序设计 这个作业在那个具体方面帮助我实现目标 pta运用for循环语 ...

  6. Zabbix安装与简单配置

    目录 0. 前言 1. 安装 1.1 准备安装环境 1.1.1 下载安装包 1.1.2 修改文件配置 1.2 开始安装 2. 实验环境 2.1 简易拓扑图 2.2 基本配置 3. 配置 0. 前言 不 ...

  7. 算法学习之剑指offer(五)

    题目1 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. public class Solution ...

  8. Vue成员获取

    0828自我总结 Vue成员获取 一.vue中data的获取 1.获取data里面的某个变量 $data.msg也可以简写成msg 2.获取data全部内容 $data 二.获取vue中vue挂钩的对 ...

  9. Vue-CLI项目vuex仓库

    0901自我总结 Vue-CLI项目vuex仓库 一.概念 vuex仓库是vue全局的数据仓库,好比一个单例,在任何组件中通过this.$store来共享这个仓库中的数据,完成跨组件间的信息交互. v ...

  10. 使用Xming显示Oracle Linux图形界面

    如果你在尝试各种官方说明文档中的方法之后,xclock仍然无法远程显示. 系统 Win10 - Oracle Linux 7.5 Xming的文档以及网上教程都说的是Xming相关的配置 但是,要显示 ...