这场真是无聊,搬远古原题……

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】的更多相关文章

  1. 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. 2.24 模拟赛 + DIV2 总结

    本来实在是不想打了,后来真的手痒. 晚上发现正进行DIV2然后就打了场,模拟,幸好没参加,逆风.排名2400 Codeforces Round #622 (Div. 2) A题十分钟过了 B题http ...

  3. WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化

    原文:WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制 ...

  4. 基于CPS变换的尾递归转换算法

    前言 众所周知,递归函数容易爆栈,究其原因,便是函数调用前需要先将参数.运行状态压栈,而递归则会导致函数的多次无返回调用,参数.状态积压在栈上,最终耗尽栈空间. 一个解决的办法是从算法上解决,把递归算 ...

  5. 030.Zabbix分布式部署

    一 分布式Zabbix介绍 zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix se ...

  6. 前端面试题(一)JS篇

    内置类型 JS 中分为七种内置类型,七种内置类型又分为两大类型:基本类型和对象(Object). 基本类型有六种: null,undefined,boolean,number,string,symbo ...

  7. CSP 2019 游记

    Day -32 开坑. 没什么好说的,等个 5 天等初赛(应该叫第一轮认证)挂掉之后就能弃坑了. 今天开始停课,虽然每天只停半天,但是感觉还是特别的舒服~ 然而得等初赛过了才能全天停课-- 没关系,熬 ...

  8. CF1010D Mars rover

    CF1010D Mars rover 洛谷评测传送门 题目描述 Natasha travels around Mars in the Mars rover. But suddenly it broke ...

  9. 028-实现阿里云ESC多FLAT网络

    实现类似于阿里云ECS的网络结构,其效果为云主机拥有两块和两个不同的网络,一个网络是用于用于和外网连接,一个用于内网通信,但宿主机上至少有两个网卡,整体配置如下:1.在wmare里给宿主机添加一块网卡 ...

随机推荐

  1. CodeForces 632E Thief in a Shop

    题意:给你n种物品,每种无限个,问恰好取k个物品能组成哪些重量.n<=1000,k<=1000,每种物品的重量<=1000. 我们搞出选取一种物品时的生成函数,那么只要对这个生成函数 ...

  2. 【bzoj4417】[Shoi2013]超级跳马 矩阵乘法

    题目描述 现有一个n行m列的棋盘,一只马欲从棋盘的左上角跳到右下角.每一步它向右跳奇数列,且跳到本行或相邻行.跳越期间,马不能离开棋盘.例如,当n = 3, m = 10时,下图是一种可行的跳法.   ...

  3. python的if语句、while循环、for循环

    if语句 计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码)if语句就是来控制计算机实现这一功能 语法: 1.单分支,单个条件判断 ...

  4. poj 1422 Air Raid (二分匹配)

    Air Raid Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6520   Accepted: 3877 Descript ...

  5. Html CSS学习(五)position定位 原

    Html CSS学习(五)position定位 position用来对元素进行定位,其值有以下几种: static:无特殊定位,对象遵循正常文档流,top,right,bottom,left等属性不会 ...

  6. BZOJ1229 & 洛谷2917:[USACO2008 NOV]toy 玩具 & 洛谷4480:[BJWC2018]餐巾计划问题——题解

    标题很长emmm…… [USACO2008 NOV]toy 玩具 https://www.luogu.org/problemnew/show/P2917 https://www.lydsy.com/J ...

  7. bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)

    听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ...

  8. 实例——简单的Samba共享

    服务端配置 # 临时停止iptables service iptables stop # 临时禁用SELinux setenforce 0 # 禁止iptables开机自动启动 chkconfig i ...

  9. 我们自己写的solr查询的代码作为search项目中的dao

    我们自己写的solr查询的代码作为search项目中的dao,但是启动时会报错: 其实就是说 searchServiceImpl 中我们 Autowired 的 SearchDao 类 spring ...

  10. C++语言中数组指针和指针数组彻底分析

    #################################                              ##       基本知识               ##        ...