【CQ18高一暑假前挑战赛5】标程
【A:暴力】
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int a[maxn],vis[maxn],N,M;
int main()
{
scanf("%d%d",&N,&M);
for(int i=;i<=M;i++){
scanf("%d",&a[i]);
vis[a[i]]=;
}
for(int i=;i<=N;i++)
if(!vis[i]) printf("%d\n",i);
return ;
}
【B:模拟】
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
vector<short int>G[maxn];
int main()
{
int N,M,x,i,j;
scanf("%d%d",&N,&M);
for(i=;i<=N;i++)
for(j=;j<M;j++){
scanf("%d",&x); G[i].push_back(x);
}
printf("%d %d\n",M,N);
for(i=;i<M;i++){
for(j=;j<=N;j++) printf("%d ",G[j][i]);
printf("\n");
}
return ;
}
【C:数位DP入门题】
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=;
int N,L,a[maxn];
ll dp[maxn][][maxn],num[maxn][][maxn],ans;
void divede()
{
while(N){ a[++L]=N%; N/=; }
}
ll dfs(int pos,int lim,int x)
{
if(pos==){ num[pos][lim][x]=; return x==;}
if(!lim&&dp[pos][lim][x]) return dp[pos][lim][x];
int ups=lim?a[pos]:;
for(int i=;i<=ups;i++){
dp[pos][lim][x]+=(dfs(pos-,lim&(i==ups),i))+(x==?num[pos-][lim&(i==ups)][i]:);
num[pos][lim][x]+=num[pos-][lim&(i==ups)][i];
}
return dp[pos][lim][x];
}
int main()
{
scanf("%d",&N);
divede();
for(int i=;i<=a[L];i++) ans+=dfs(L-,i==a[L],i);
printf("%lld\n",ans);
return ;
}
【D:单调队列】
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=;
const int inf=1e9+;
int a[maxn],L1[maxn],b[maxn],R1[maxn],L2[maxn],R2[maxn],q[maxn],head;
vector<int>G[maxn];
ll get(int u)
{
int Len=G[b[u]].size(); ll res=;
for(int i=;i<Len;i++){
if(u>=G[b[u]][i]){
ll r=min(R1[G[b[u]][i]],R2[u])-u+;
ll l=G[b[u]][i]-max(L2[u],L1[G[b[u]][i]])+;
if(r>&&l>) res+=l*r;
}
else {
ll r=min(R2[u],R1[G[b[u]][i]])-G[b[u]][i]+;
ll l=u-max(L2[u],L1[G[b[u]][i]])+;
if(r>&&l>) res+=l*r;
}
}
return res;
}
int main()
{
int N,i; ll ans=;
scanf("%d",&N);
for(i=;i<=N;i++) scanf("%d",&a[i]);
for(i=;i<=N;i++) scanf("%d",&b[i]);
a[]=inf; head=; q[head]=;
for(i=;i<=N;i++){ //若有相同,只算左边第一个。
while(head&&a[i]>a[q[head]]) head--;
L1[i]=q[head]+; q[++head]=i;
}
a[N+]=inf; head=; q[head]=N+;
for(i=N;i>=;i--){
while(head&&a[i]>=a[q[head]]) head--;
R1[i]=q[head]-; q[++head]=i;
}
for(i=;i<=N;i++) G[a[i]].push_back(i); b[]=inf; head=; q[head]=;
for(i=;i<=N;i++){
while(head&&b[i]>b[q[head]]) head--;
L2[i]=q[head]+; q[++head]=i;
}
b[N+]=inf; head=; q[head]=N+;
for(i=N;i>=;i--){
while(head&&b[i]>=b[q[head]]) head--;
R2[i]=q[head]-; q[++head]=i;
}
for(i=;i<=N;i++) ans+=get(i);
printf("%lld\n",ans);
return ;
}
【CQ18高一暑假前挑战赛5】标程的更多相关文章
- 【CQ18高一暑假前挑战赛4】标程
[二分或者STL] 二分: #include<bits/stdc++.h> using namespace std; ; int a[maxn]; int main() { ,pos; s ...
- 【CQ18高一暑假前挑战赛3.5】标程
[A:快速幂相关] #include<bits/stdc++.h> using namespace std; int qpow(int a,int x){ a%=;; while(x){ ...
- 【CQ18高一暑假前挑战赛3】标程
[A:LCM] #include<bits/stdc++.h> using namespace std; #define ll long long int main() { ll a,b, ...
- 【CQ18高一暑假前挑战赛2】标程
[昨晚打校赛,5个小时打完很累了,所以搞忘出题了...对不起学弟们,不过出的题都亲自写过一遍,可以保证题目和代码长度都不长,题目难度不大] [A:bush博弈] #include<bits/st ...
- 【CQ18高一暑假前挑战赛1】标程
[A] #include<bits/stdc++.h> using namespace std; #define ll long long ll qpow(ll a,ll x,ll Mod ...
- [转]关于一些SPFA的标程
SPFA算法 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm. 最短路径快速算法-SPFA算法是西南交通大学段凡丁于1994年发表的. 适用范围:给定 ...
- [求助][SPOJ MARIOGAM]-高斯消元(内含标程,数据等)
小蒟蒻开始做概率的题之后,遇到了这道题,然而,他发现自己的程序调试了无数次也无法通过,系统总是返回令人伤心的WA, 于是,他决定把这一天半的时间收集到的资料放在网上, 寻求大家的帮助, 也可以节省后来 ...
- hdu6435 Problem J. CSGO标程讲解以及改正标程的一个错误(本来第一个样例过不了2333) 以及 poj2926 五维曼哈顿距离模板
比赛的时候抄poj2926的模板,但改不来啊orz #include <iostream> #include <cstdio> #include <cstring> ...
- 暑假前的flag
暑假到了,为了简便新开了一个博客,供暑假刷体放一些题解,玩acm1年多了,cf还是蓝名,真是菜的一笔,明年就大三了,马上就要毕业了,然而还是啥也不会,兼职和智障没什么两样,当初大一吹的牛逼说要成为学校 ...
随机推荐
- 【java】RC4加密转16进制获取长度为40的不重复优惠码字符串 【未优化版本】
需求:需要一串给各机构独有的优惠码 间接需求:固定长度.不重复.没有规律可循 实现思想如下: 1.首先获取一个UUID 2.去除UUID中的“-” 3.小写转大写 4.获取一个固定长度字符串 5.按照 ...
- win7 32 c++环境
http://jingyan.baidu.com/article/455a99509c76d8a1662778f6.html 首先我们先来到这个网址下载MinGW的下载程序,百度搜索官网即可.下载之后 ...
- SSH错误:packet_write_wait: Connection to 10.57.19.250 port 22: Broken pipe
现象:ssh连接以后,服务器会主动断开连接,wireshark抓包,发线服务器会tcp rst,断开ssh连接 解决尝试:1.修改会话超时时间:2.客户端主动间隔性向服务器发送保活报文:3.服务端主动 ...
- python 工具mouse_find 鼠标定位
import os,time import pyautogui as pag try: while True: print ("Press Ctrl-C to end") x,y ...
- [转] RabbitMQ介绍
转自: http://lynnkong.iteye.com/blog/1699684 1 什么是RabbitMQ? RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初 ...
- py3中的文字编码
Python3 中字符的类型只有两种: str: 编码过的 unicode 文本字符 bytes: 编码前的字节序列
- 编码知识 (Unicode、UTF-8、ANSI)
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...
- 关于提高沟通能力的书单zz
上周推荐了一份关于提高写作能力的书单,这周,我们来聊聊沟通能力. 在现代社会,沟通能力变得越来越重要.人与人之间的社交渠道越来越丰富,工作中的协同合作也越来越普遍.我们要沟通的人越来越多,节奏越来越快 ...
- docker&k8s填坑记
本篇主要用于记录在实施docker和kubenetes过程中遇到的一个问题和解决办法. 本节部分内容摘自互联网,有些部分为自己在测试环境中遇到到实际问题,后面还会根据实际情况不断分享关于docker/ ...
- KVM技术
今天是周六,看到一片KVM相关的文章,感觉写得很不错,翻译了,原文在这里:KVM Technology 在开放服务器虚拟化的应用方面,KVM虚拟化技术近年来广受关注.自从2006年10月份诞生以来,其 ...