P4409 [ZJOI2006]皇帝的烦恼(20190922B)(乱搞)

考场历程十分艰辛啊。。。
- 第一题没切掉,还浪费了很长时间,就是一个裸的最小生成树,但是因为可恶的distance为关键字莫名其妙查错了10min....
- 本题先乱搞了一下,过了样例
- 然后看第三题,可写性极差
- 回头写此题,写了一个自己看起来是正解的二分(正解就是二分)
- 然后干了两小时第三题
- 第三题毛线分都没有(据说是线段树合并)
旁边的dalao没有干第三题,人家写了俩小时正解...
以后我要是再干那种题我就把bk201头拧掉掉....
(以上为闲扯)
~~~~~~~~~~~~我是分割线~~~~~~~~~
化简题意:给一个圈,圈上的点分配ai个数,相邻点的数字不能有相同的,求最小的数字种数
solution:
首先,乱搞可以搞出来:两两之和的最大值就是答案....然后后来过了样例....
为什么呢?
感性证明一波:两个将军之间一定是不能有相同牌子的,也就是说,两个将军之间的牌子数量和就是两个将军需要的牌子和,而隔一个就可以和前一个有重复。
然后呢?会有这样的情况
很神奇,一个奇数环,应该是3,但是乱搞的是2....
但是,秉承着绝不写正解的宗旨,我回到家继续了乱搞....
于是一篇题解看得我五体投地...
这是对于答案的另一种算法:对于每一种牌子,可以把它看成分给n/2个将军,当这些牌子利用最好时,就是最优解。如果是偶数,那当每个牌子n/2时,就是上述情况。问题就在这个奇环上。
同上,对于每一个牌子,分给这些将军,那么总数就是
Σa[i] /(n/2)
(向上取整)
所以,当环是奇数,判断得到的两个答案的最大值,就是真答案了。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int n;
int a[maxn];
int ans;
int sum; int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
if(n==)
{
printf("%d",n);
return ;
}
ans=a[]+a[n];
for(int i=;i<n;i++)
{
if(a[i]+a[i+]>ans)
ans=a[i]+a[i+];
}
double summ=sum,nn=n,tem;
tem=ceil(summ/(n/));
if((int)tem>ans)
ans=(int)tem;
printf("%d",ans);
return ;
}
正解见下(完)
P4409 [ZJOI2006]皇帝的烦恼(20190922B)(乱搞)的更多相关文章
- 洛谷 P4409 [ZJOI2006] 皇帝的烦恼
题目链接-> OVO 题解: 很久没有写博客了,可能是因为最近太颓废了吧. 刚刚考完期末考试,无比期盼早点外出学习,不要面对成绩,害怕. #include <cstdio> #inc ...
- [ZJOI2006]皇帝的烦恼
题解: 具有单调性的题目还是要多想想二分答案 不二分答案暴力dp是n^3的 非常不优秀 二分答案之后就比较好做 mx[i],nx[i]表示最多/最少几个与a[1]相同 代码: #include < ...
- Luogu 4409 [ZJOI2006]皇帝的烦恼
BZOJ 1863 lyd口中的夹B递推. 挺妙的解法. 第一个感觉是找到一个最大的相邻的$a_i + a_{i - 1}$就可以了,但是这个想法大概只对了一半,一半的意思是说只有在$n$为偶数的时候 ...
- 【BZOJ】【1863】【ZJOI2006】trouble 皇帝的烦恼
二分+DP Orz KuribohG 神题啊= = 满足单调性是比较显然的…… 然而蒟蒻并不会判断能否满足……QwQ 神一样的DP姿势:f[i]表示第 i 个与第1个最多有多少个相同,g[i]表示最少 ...
- 【DP/二分】BZOJ 1863:[Zjoi2006]trouble 皇帝的烦恼
863: [Zjoi2006]trouble 皇帝的烦恼 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 465 Solved: 240[Submit][ ...
- bzoj1863: [Zjoi2006]trouble 皇帝的烦恼
白书原题.l边界又设错啦.一般都是错这里吧.注意为什么这里不能是l=0.(只是为了判断第一个和最后一个 #include<cstdio> #include<cstring> # ...
- BZOJ 1863: [Zjoi2006]trouble 皇帝的烦恼( 二分答案 )
二分答案..然后从头到尾推一下, 看最后一个能不能取0个和第一个人相同的勋章 ------------------------------------------------------------- ...
- 【BZOJ1863】[Zjoi2006]trouble 皇帝的烦恼 二分+DP
[BZOJ1863][Zjoi2006]trouble 皇帝的烦恼 Description 经过多年的杀戮,秦皇终于统一了中国.为了抵御外来的侵略,他准备在国土边境安置n名将军.不幸的是这n名将军羽翼 ...
- 【BZOJ-1863】trouble 皇帝的烦恼 二分 + DP
1863: [Zjoi2006]trouble 皇帝的烦恼 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 559 Solved: 295[Submit] ...
随机推荐
- python与数据存储
思考:为什么使用计算机? 存储数据,计算数据 思考:数据存在哪里? 数据存在内存里 内存:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁.计算机中所有程序的运行都是在内存中进行的,因此内存的 ...
- 斐波那契数列n项的值。(递归和非递归算法Golang实现)
递归实现: func f(num int) int { if num == 1 || num == 2 { return 1 } return f(num-1) + f(num-2) } 非递归实现: ...
- jdbc 以及 事务的java类编写
package com.gaosheng.utils; import java.sql.Connection;import java.sql.SQLException; import javax.sq ...
- Docker 安装Oracle
1.使用docker 命令搜索oracle 镜像,前提是已安装了Docker docker search oracle 2.下载相应版本的oracle 镜像 docker pull sath89/o ...
- C# 获取顶级(一级)域名方法
/// <summary> /// 获取域名的顶级域名 /// </summary> /// <param name="domain">< ...
- SpringMVC快速入门记录(一)
1.SpringMVC入门:表现层框架,spring的一部分 2.Spring处理流程: 3.要在web.xml里写好相关配置 <!--配置DispatcherServlet--> < ...
- 基于 Web 端 3D 地铁站可视化系统
前言 工业互联网,物联网,可视化等名词在我们现在信息化的大背景下已经是耳熟能详,日常生活的交通,出行,吃穿等可能都可以用信息化的方式来为我们表达,在传统的可视化监控领域,一般都是基于 Web SCAD ...
- 「看完不后悔系列!」Maya的建模小技巧
Maya 将最大的联合影响力降至最低 最大的联合影响力是游戏角色装备的已知要求. 但是,对于每种类型的生产来说,这实际上都是一个很好的工作流程. 从透视图上看,如果你将联合影响力从4更改为5,则不一定 ...
- 转 NAT技术详解
NAT产生背景 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣.他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需.企业利用互联网发布信息,传递资料和 ...
- linux-查看服务器内存使用情况(free top)
free命令:显示系统使用和空闲的内存情况,包括物理内存.交互区内存(swap)和内核缓冲区内存. [root@ipha-dev71- workspace]# free # kb total used ...