【jzoj6.24模拟B】
这场真是无聊,搬远古原题……
xjb做了做,(居然没AK真是身败名裂)
A.教主的花园
答案明显具有可二分性,二分答案判定下就行。
#include<bits/stdc++.h>
#define N 100010
using namespace std;
int n,m,a[N];
inline int check(int x){
int l=,r=n;int ret=n;
while(l<=r){
int mid=(l+r)>>;
if(a[mid]<x)l=mid+;else r=mid-,ret=mid;
}
return ret;
}
inline int dis(int a,int b){a=a-b;if(a<) return -a;else return a;}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
n=read();for(int i=;i<=n;i++)a[i]=read();
m=read();int x1,y1,x2,y2;
sort(a+,a+n+);
for(int i=;i<=m;i++){
x1=read(),y1=read(),x2=read(),y2=read();
if((y1<&&y2<)||(y1>&&y2>)){printf("%d\n",dis(y1,y2)+dis(x1,x2));continue;}
if(x1>x2)swap(x1,x2);int len=(x1+x2)>>,pos=check(len);
if(x1<=a[pos]&&a[pos]<=x2){printf("%d\n",dis(y1,y2)+dis(x1,x2));continue;}
int t1=dis(a[pos],x1)+dis(a[pos],x2)+dis(y1,y2),t2=0x7fffffff,t3=0x7fffffff;
if(pos>)t2=dis(a[pos-],x1)+dis(a[pos-],x2)+dis(y1,y2);
if(pos<n)t3=dis(a[pos+],x1)+dis(a[pos+],x2)+dis(y1,y2);
if(t1>t2)t1=t2;if(t1>t3)t1=t3;
printf("%d\n",t1);
}
}
教主泡嫦娥
环形上跑一下dp,四维记录状态。
#include<bits/stdc++.h>
#define N 10010
#define inf 10000000000000007LL
using namespace std;
typedef long long ll;
int a[N],n,m;
ll f[N][][],ans=;
inline ll sqr(ll x){return x*x;}
inline void dfs(){
f[][][]=f[][][]=inf;
for(int i=;i<=n;i++)for(int j=;j<;j++)
if((a[i]<a[i-])^j){
f[i][j][]=f[i-][j][]+abs(a[i]-a[i-]);
f[i][j][]=min(f[i-][j][],min(f[i-][j^][],f[i-][j^][])+m)+abs(a[i]-a[i-]);
}
else{
f[i][j][]=f[i-][j][]+sqr(a[i]-a[i-]);
f[i][j][]=min(f[i-][j][],min(f[i-][j^][],f[i-][j^][])+m)+sqr(a[i]-a[i-]);
}
}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
n=read();m=read();
for(int i=;i<n;i++)a[i]=read();
a[n]=a[];memset(f,,sizeof(f));
dfs();
ans=min(min(f[n][][],f[n][][]),min(f[n][][],f[n][][]));
memset(f,,sizeof(f));f[][][]=inf;dfs();
ans=min(ans,f[n][][]-m);
memset(f,,sizeof(f));f[][][]=inf;dfs();
ans=min(ans,f[n][][]-m);
cout<<ans<<endl;
}
保镖排队:
懒得写了,从网上粘一个解释下来:
于是假设当前有tot个格子,然后自己有j个儿子,因为是可放可不放于是就是C(tot+j,j),这个时候你们就会疑惑了,难道不是C(tot+j-1,j)吗,这不是才是可放可不放的公式吗,但你可能忘记了,自己虽然必须放在最前面,但是总的可放位置仍要把他算进去呀
#include<bits/stdc++.h>
#define N 2010
#define yql 10007
using namespace std;
int f[N][N],dp[N],g[N][N],val[N],n;
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
void calc(int x){
dp[x]=;if(!g[x][]){val[x]=;return;}
int tot=;
for(int i=g[x][];i;i--){
calc(g[x][i]);tot+=val[g[x][i]];
dp[x]=dp[x]%yql*dp[g[x][i]]%yql*f[tot-][val[g[x][i]]-]%yql;
}
val[x]=tot+;
}
inline void pre(){
f[][]=;
for(int i=;i<=;i++){
f[i][]=;for(int j=;j<=i;j++)f[i][j]=(f[i-][j-]+f[i-][j])%yql;
}
}
int main(){
pre();int T=read();
while(T--){
memset(g,,sizeof(g));memset(dp,,sizeof(dp));memset(val,,sizeof(val));
n=read();
for(int i=;i<=n;i++){
g[i][]=read();
for(int j=;j<=g[i][];j++)g[i][j]=read();
}
calc();
printf("%d\n",dp[]);
}
}
教主的别墅
针鸡儿丢人,身败名裂,被卡了一个点
居然都没有AK。
不放代码了,太气了。
【jzoj6.24模拟B】的更多相关文章
- 24模拟keepalved vrrp功能,监听主节点,如果主节点不可访问则备节点启动并配置LVS实现接管主节点的资源提供服务(提醒:注意ARP缓存)
[root@lb04 scripts]# cat ha_lv.sh #!/bin/bash while true do check_count=$(nmap 10.0.0.13|grep " ...
- 2.24 模拟赛 + DIV2 总结
本来实在是不想打了,后来真的手痒. 晚上发现正进行DIV2然后就打了场,模拟,幸好没参加,逆风.排名2400 Codeforces Round #622 (Div. 2) A题十分钟过了 B题http ...
- WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化
原文:WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制 ...
- 基于CPS变换的尾递归转换算法
前言 众所周知,递归函数容易爆栈,究其原因,便是函数调用前需要先将参数.运行状态压栈,而递归则会导致函数的多次无返回调用,参数.状态积压在栈上,最终耗尽栈空间. 一个解决的办法是从算法上解决,把递归算 ...
- 030.Zabbix分布式部署
一 分布式Zabbix介绍 zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix se ...
- 前端面试题(一)JS篇
内置类型 JS 中分为七种内置类型,七种内置类型又分为两大类型:基本类型和对象(Object). 基本类型有六种: null,undefined,boolean,number,string,symbo ...
- CSP 2019 游记
Day -32 开坑. 没什么好说的,等个 5 天等初赛(应该叫第一轮认证)挂掉之后就能弃坑了. 今天开始停课,虽然每天只停半天,但是感觉还是特别的舒服~ 然而得等初赛过了才能全天停课-- 没关系,熬 ...
- CF1010D Mars rover
CF1010D Mars rover 洛谷评测传送门 题目描述 Natasha travels around Mars in the Mars rover. But suddenly it broke ...
- 028-实现阿里云ESC多FLAT网络
实现类似于阿里云ECS的网络结构,其效果为云主机拥有两块和两个不同的网络,一个网络是用于用于和外网连接,一个用于内网通信,但宿主机上至少有两个网卡,整体配置如下:1.在wmare里给宿主机添加一块网卡 ...
随机推荐
- bzoj4501 旅行
题面: 小C来到了F国,小C想好好地参观F国.F国可以看一个有n个点m条边的有向无环图,小C刚开始站在1号点.假设现在小C站在x号点: 1.点x没有出边,结束旅游. 2.点x有o条出边,小C等概率地选 ...
- 【bzoj3437】小P的牧场 斜率优化dp
题目描述 背景 小P是个特么喜欢玩MC的孩纸... 描述 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个 ...
- android应用打前需要准备些啥?
发布之前我们需要准备的东西 参考了google官方和结合国内开发经验 1) 用户协议(本地.网络.API) 2) 签名文件(用于为APP加密,唯一标签) 3) 程序图标(第一个面对用户,准备不同的但合 ...
- BZOJ4820 SDOI2017硬币游戏(概率期望+高斯消元+kmp)
容易想到的做法是建出AC自动机,高斯消元.然而自动机上节点数量是nm的. 注意到我们要求的变量只有n个,考虑将其他不用求的节点合并为一个变量.这个变量即表示随机生成一个串,其不包含任何一个模板串的概率 ...
- BZOJ4736 温暖会指引我们前行(LCT+最大生成树)
类似于瓶颈路,满足条件的路径一定在温度的最大生成树上,那么就是一个LCT维护MST的裸题了. #include<iostream> #include<cstdio> #incl ...
- P1315 观光公交
题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...
- 转:关于Latent Dirichlet Allocation及Hierarchical LDA模型的必读文章和相关代码
关于Latent Dirichlet Allocation及Hierarchical LDA模型的必读文章和相关代码 转: http://andyliuxs.iteye.com/blog/105174 ...
- IntelliJ IDEA2018注册
第一步:0.0.0.0 account.jetbrains.com及0.0.0.0 www.jetbrains.com 添加到hosts文件 第二步:进入 http://idea.lanyus.co ...
- BZOJ4514:[SDOI2016]数字配对——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4514 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj ...
- cf 442 div2 F. Ann and Books(莫队算法)
cf 442 div2 F. Ann and Books(莫队算法) 题意: \(给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]\) 每次查询区间\([l,r]内有多少对(i, ...