目录

A

模拟出A不是最大值的情况,存起来。

最多有n个。当A为最大值的时候,后面n-1个数开始循环。

查询分两种情况讨论就行了

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int _=2e5+7;
ll read() {
ll x=0,f=1;char s=getchar();
for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;
for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';
return x*f;
}
int n,m,gs;
pair<int,int> ans[_];
vector<int> a;
deque<int> q;
int main() {
n=read(),m=read();
int ma=0;
for(int i=1,x;i<=n;++i) {
x=read();
q.push_back(x);
ma=max(ma,x);
}
for(int i=1;i<=n;++i) {
int A=q.front();q.pop_front();
int B=q.front();q.pop_front();
ans[++gs]=make_pair(A,B);
//cout<<ans[gs].first<<" "<<ans[gs].second<<"<\n";
q.push_front(max(A,B));
q.push_back(min(A,B));
if(q.front()==ma) break;
}
q.pop_front();
while(!q.empty()) a.push_back(q.front()),q.pop_front();
//for(auto v:a) cout<<v<<"< ";cout<<"\n";
while(m --> 0) {
ll Query=read();
if(Query<=(ll)gs) printf("%d %d\n",ans[Query].first,ans[Query].second);
else printf("%d %d\n",ma,a[(Query-gs-1)%a.size()]);
}
return 0;
}

B

构造。

一行的很容易构造,\(1,m,2,m-2,3…………\)

两行也很容易,(1,1),(2,m),(1,2),(2,m-1)…………。

扩展的也很容易就是差不多一行的二维形式。

代码

#include <bits/stdc++.h>
using namespace std;
int n,m;
int main() {
scanf("%d%d",&m,&n);
int p=1,q=m;
pair<int,int> a=make_pair(1,1);
while(p<=q) {
int js=1,len=(p==q?n:2*n);
for(int i=1;i<=len;++i) {
printf("%d %d\n",a.first,a.second);
if(i!=len) a=make_pair(a.first==p?q:p,i&1?n-a.second+1:++js);
}
p++;q--;
a=(a.first>m/2)?make_pair(p,1):make_pair(q,1);
}
return 0;
}

C

转化一下,首先我们先排序a,没有影响。c为i选的菜的价格

那考虑一下b,i<j,c[i]<c[j],那么我们交换一下c[i],c[j]对最后我们拿到的菜没有影响。c[i]>c[j]就不管咯,最后b也是有序的了。

判断时候排序a,b,一对对的比较,第一个买不起的就是ans。可以想这份菜不一定他能买到,但最后一个“我”的一定买不到。但找到的第一份买不到的菜是一定剩下的,前面卖的更得起贵的菜(也买得到),后面买不起这份菜.a[i]至少要有i个人大于等于他。

用权值线段树求出权值最大的(能买得起的人数-rk<0)的值。

//第一个能买得起的人数-rk< 0的值
#include <bits/stdc++.h>
#define ls rt<<1
#define rs rt<<1|1
using namespace std;
const int _=1e6+7,N=1e6,INF=0x3f3f3f3f;
int n,m,q,a[_],b[_],tong[_];
struct node {
int l,r,mi,lazy;
}t[_<<2];
void pushup(int rt) {
t[rt].mi=min(t[ls].mi,t[rs].mi);
}
void pushdown(int rt) {
if(t[rt].lazy) {
t[ls].lazy+=t[rt].lazy,t[ls].mi+=t[rt].lazy;
t[rs].lazy+=t[rt].lazy,t[rs].mi+=t[rt].lazy;
t[rt].lazy=0;
}
}
void build(int l,int r,int rt) {
t[rt].l=l,t[rt].r=r,t[rt].mi=INF;
if(l==r) return;
int mid=(l+r)>>1;
build(l,mid,ls);
build(mid+1,r,rs);
}
void modify(int rt,int L,int R,int ad) {
if(L>R) return;
if(L<=t[rt].l&&t[rt].r<=R) {
t[rt].lazy+=ad,t[rt].mi+=ad;
return;
}
pushdown(rt);
int mid=(t[rt].l+t[rt].r)>>1;
if(L<=mid) modify(ls,L,R,ad);
if(R>mid) modify(rs,L,R,ad);
pushup(rt);
}
int query(int rt){
if(t[rt].l==t[rt].r) return t[rt].l;
pushdown(rt);
if(t[rs].mi<0) return query(rs);
else return query(ls);
}
int main() {
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
for(int i=1;i<=m;++i) scanf("%d",&b[i]);
build(1,N,1);
for(int i=1;i<=n;++i) {
if(!tong[a[i]]) modify(1,a[i],a[i],-INF);
tong[a[i]]++;
modify(1,1,a[i],-1);
}
for(int i=1;i<=m;++i) modify(1,1,b[i],1);
scanf("%d",&q);
while(q --> 0) {
int opt,id,val;
scanf("%d%d%d",&opt,&id,&val);
if(opt==1) {
tong[a[id]]--;
if(!tong[a[id]]) modify(1,a[id],a[id],INF);
modify(1,1,a[id],1);
a[id]=val;
modify(1,1,a[id],-1);
if(!tong[a[id]]) modify(1,a[id],a[id],-INF);
tong[a[id]]++;
} else {
modify(1,1,b[id],-1);
b[id]=val;
modify(1,1,b[id],1);
}
if(t[1].mi>=0) puts("-1");
else printf("%d\n",query(1));
}
return 0;
}

cf 1179 C的更多相关文章

  1. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

  2. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  3. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积.保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这个 ...

  4. ARC下OC对象和CF对象之间的桥接(bridge)

    在开发iOS应用程序时我们有时会用到Core Foundation对象简称CF,例如Core Graphics.Core Text,并且我们可能需要将CF对象和OC对象进行互相转化,我们知道,ARC环 ...

  5. [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现

    1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...

  6. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

  7. CF memsql Start[c]UP 2.0 B

    CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ...

  8. CF #376 (Div. 2) C. dfs

    1.CF #376 (Div. 2)    C. Socks       dfs 2.题意:给袜子上色,使n天左右脚袜子都同样颜色. 3.总结:一开始用链表存图,一直TLE test 6 (1)如果需 ...

  9. CF #375 (Div. 2) D. bfs

    1.CF #375 (Div. 2)  D. Lakes in Berland 2.总结:麻烦的bfs,但其实很水.. 3.题意:n*m的陆地与水泽,水泽在边界表示连通海洋.最后要剩k个湖,总要填掉多 ...

随机推荐

  1. mybatis-plus 主键自增问题

    主键不自增:返回值是插入的条数 <insert id="add" parameterType="EStudent"> insert into TSt ...

  2. latex中添加C++代码

    用到listings宏包,模板如下: \documentclass[UTF8]{ctexart} \usepackage[a4paper,top=2cm,bottom=2cm,left=2cm,rig ...

  3. C#读写修改设置调整UVC摄像头画面-滚动

    有时,我们需要在C#代码中对摄像头的滚动进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...

  4. springmvc集成shiro后,session、request是否发生变化

    1. 疑问 我们在项目中使用了spring mvc作为MVC框架,shiro作为权限控制框架,在使用过程中慢慢地产生了下面几个疑惑,本篇文章将会带着疑问慢慢地解析shiro源码,从而解开心里面的那点小 ...

  5. layout_gravity 属性和 gravity属性的区别

    安卓中  LinearLayout有两个非常相似的属性: android:gravity与android:layout_gravity. 区别在于: android:gravity 属性是对该view ...

  6. MySQL基础-1

    目录 数据库的基本概念 什么是数据库 为什么要使用数据库 数据库的分类 数据库的重要概念 数据库的安装 安装步骤 简单使用数据库 数据库的基本概念 什么是数据库 字面意思数据库就是存储数据的仓库,正常 ...

  7. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  8. 记一下python的method resolution order(MRO)机制

    一直用python都是拿着cookbook和库的文档直接撸,很少会把细节过得那么彻底,遇到问题才会翻文档. 今天看到这个例子的时候我突然触及了我的盲区,我不确定这样的继承层级调用super.foo() ...

  9. 使用node+vue实现简单的WebSocket聊天功能

    最近学习了一下websocket的即时通信,感觉非常的强大,这里我用node启动了一个服务进行websocket链接,然后再vue的view里面进行了链接,进行通信,废话不多说,直接上代码吧, 首先, ...

  10. 我的windows开发环境设定与日常使用指南

    目录 开发相关的软件包安装.设定 Visual Studio 默认设定 鼠标右键添加"在此处打开cmd"选项 git gvim notepad++ VSCode-Insider C ...