【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里给宿主机添加一块网卡 ...
随机推荐
- 【bzoj1370】[Baltic2003]Gang团伙 并查集
题目描述 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙.告诉你关于这n个人的m条信息, ...
- AngularJS注入依赖路由总结
属性 描述 $dirty 表单有填写记录 $valid 字段内容是合法的 $invalid 字段内容是非法的 $pristine 表单没有填写记录 什么事依赖注入? 依赖注入是一种软件设计模式,在这 ...
- 参考《Java疯狂讲义》
参考<Java疯狂讲义>Lambda表达式支持将代码块作为方法参数,Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口)的实例 1. Lambda ...
- BZOJ4196:[NOI2015]软件包管理器——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=4196 https://www.luogu.org/problemnew/show/P2146 你决定 ...
- BZOJ1034 [ZJOI2008]泡泡堂BNB 【贪心】
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3531 Solved: 1798 [Submit][ ...
- 1 Easy Read/Write Splitting with PHP’s MySQLnd
以下均是使用翻译软件翻译的! Note: This is part one in our Extending MySQL with PHP's MySQLnd Series, read part 2 ...
- js判断设备类型
1. 判断微信 function is_weixin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/Micr ...
- 51nod 1274 最长递增路径(DP)
一开始自己想了一种跑的巨慢..写了题解的做法又跑的巨快..一脸懵逼 显然要求边权递增就不可能经过重复的边了,那么设f[i]为第i条边出发能走多远就好了,这是我一开始的写法,可能dfs冗余状态较多,跑的 ...
- [学习笔记]min-max容斥
[Learning]min-max容斥以及推广 min-max容斥 就是max(a,b)=min(a)+min(b)-min(a,b) max(a,b,c)=a+b+c-min(a,b)-min(a, ...
- foo.prototype作为新对象的原型来使用
最近在研究js,疑惑也比较多.主要是被原型这个东西给弄迷糊了.疑惑出自于: function foo { this.name = 'foo'; } alert(foo.prototype === Fu ...