bzoj 1800 & 洛谷 P2165 [AHOI2009]飞行棋 —— 模拟
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1800
https://www.luogu.org/problemnew/show/P2165
n 才20,所以模拟;
一开始是这样写的,惨WA2个点:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int n;
ll a[],s[],ans,sum;
int main()
{
scanf("%d",&n);
// for(int i=1;i<=2*n;i++)
// {
// if(i<=n)scanf("%lld",&a[i]); else a[i]=a[i-n];
// s[i]=s[i-1]+a[i];
// }
// sum=s[n];
for(int i=;i<=n;i++)scanf("%d",&a[i]),s[i]=s[i-]+a[i],sum+=a[i];
for(int i=n+;i<=n+n;i++)a[i]=a[i-n],s[i]=s[i-]+a[i];
for(int i=;i<=n;i++)
for(int j=i;s[j]-s[i-]<sum/;j++)
{
int t=s[j]-s[i-],k=j,p;
while(s[k+]-s[i-]<=sum/)k++;
if(s[k]-s[i-]!=sum/||k==j)continue;//k==j
p=k+;
while(s[p+]-s[k]<=t)p++;
if(s[p]-s[k]!=t||p==k)continue;//p==k
ans++;
}
printf("%lld\n",ans/);
return ;
}
囧
然后又改改,惨WA6个点:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int a[],n;
ll s[],ans,sum;
int main()
{
scanf("%d",&n);
for(int i=;i<=*n;i++)
{
if(i<=n)scanf("%d",&a[i]); else a[i]=a[i-n];
s[i]=s[i-]+a[i];
}
sum=s[n];
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
for(int k=j+;k<=n;k++)
for(int l=k+;l<=n;l++)
if(s[j]-s[i-]==s[l]-s[k-]&&s[k-]-s[j]==sum-s[l]+s[i-])ans++;
printf("%lld\n",ans);
return ;
}
囧囧
完全改成TJ样子就A了...
不会写模拟了...
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int n;
ll a[],s[],ans,sum;
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=n;i++)
{
s[i+]=s[i]+a[i];
sum+=a[i];
}
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
for(int k=j+;k<=n;k++)
for(int l=k+;l<=n;l++)
if(s[j]-s[i]==s[l]-s[k]&&s[k]-s[j]==sum-s[l]+s[i])ans++;
printf("%lld\n",ans);
return ;
}
也可以求出有多少条直径,然后从中任选2条就可以组成一个矩形。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
int n,a[],s[],ans,sum;
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]),s[i]=s[i-]+a[i],sum+=a[i];
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
if(s[j]-s[i]==sum/)ans++;//不是-s[i-1]
printf("%d\n",ans*(ans-)/);
return ;
}
bzoj 1800 & 洛谷 P2165 [AHOI2009]飞行棋 —— 模拟的更多相关文章
- P2165 [AHOI2009]飞行棋
题目描述 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. 输入输出格式 输入格式: 第一行为 ...
- 【BZOJ1800】[AHOI2009]飞行棋(暴力)
[BZOJ1800][AHOI2009]飞行棋(暴力) 题面 BZOJ 洛谷 题解 预处理一下前缀和就可以\(O(1)\)计算两点间的距离了,直接\(O(n^4)\)暴力枚举即可. #include& ...
- [BZOJ 3039&洛谷P4147]玉蟾宫 题解(单调栈)
[BZOJ 3039&洛谷P4147]玉蟾宫 Description 有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地. ...
- 洛谷 2023 [AHOI2009]维护序列
洛谷 2023 [AHOI2009]维护序列 洛谷原题传送门 这个题也是一道经典的线段树模版(其实洛谷的模版二改一下输入顺序就能AC),其中包括区间乘法修改.区间加法修改.区间查询三个操作. 线段树的 ...
- 洛谷P2023 [AHOI2009]维护序列(线段树区间更新,区间查询)
洛谷P2023 [AHOI2009]维护序列 区间修改 当我们要修改一个区间时,要保证 \(ax+b\) 的形式,即先乘后加的形式.当将区间乘以一个数 \(k\) 时,原来的区间和为 \(ax+b\) ...
- 洛谷P4126 [AHOI2009]最小割
题目:洛谷P4126 [AHOI2009]最小割 思路: 结论题 在残余网络上跑tarjan求出所有SCC,记id[u]为点u所在SCC的编号.显然有id[s]!=id[t](否则s到t有通路,能继续 ...
- 洛谷 P5594 【XR-4】模拟赛
洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...
- BZOJ1801或洛谷2051 [AHOI2009]中国象棋
BZOJ原题链接 洛谷原题链接 这题挺难想状态的,刚看题感觉是状压,但数据\(100\)显然不可能. 注意到每行每列只能放\(0\sim 2\)个棋子,所以我们可以将这个写入状态. 设\(f[i][j ...
- bzoj 4816: 洛谷 P3704: [SDOI2017]数字表格
洛谷很早以前就写过了,今天交到bzoj发现TLE了. 检查了一下发现自己复杂度是错的. 题目传送门:洛谷P3704. 题意简述: 求 \(\prod_{i=1}^{N}\prod_{j=1}^{M}F ...
随机推荐
- Centos永久路由添加教程
Centos 永久路由添加,一张图看懂全部 blog地址:http://www.cnblogs.com/caoguo
- Centos6.6 安装rsync服务端
一.介绍 在工作中经常遇到代码分发,或者是资料备份,都会用到rsync,配置不算复杂,仅做下记录,安装环境如下: 1) Centos6.6 2) rsync-3.0.6-12.el6.x86_64 3 ...
- (转)Hibernate快速入门
http://blog.csdn.net/yerenyuan_pku/article/details/64209343 Hibernate框架介绍 什么是Hibernate 我们可以从度娘上摘抄这样有 ...
- __declspec(dllexport)
__declspec(dllexport) (2010-06-17 10:04:28) 转载▼ 标签: __declspec dllexport 导出 it 分类: C 先看代码:以下是在dev-c+ ...
- 8.2.3 覆写 Equals
经过对四种不同类型判等方法的讨论,我们不难发现不管是 Equals 静态方法.Equals 虚方法 抑或==操作符的执行结果,都可能受到覆写 Equals 方法的影响.因此研究对象判等就必须将注意 力 ...
- sysbench使用指南
sysbench 安装.使用和测试 摘要: sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQ ...
- hdu 1584 蜘蛛纸牌
把小的牌放到大的牌上,求最小移动的距离和 DFS遍历所有的可能,把每一张牌与之要移动的牌都进行两层for的循环,注意回溯条件满足立刻break 代码(算法借鉴) #include <bits/s ...
- jQuery匹配id 批量修改css属性
<ul id="foreignCurrencyTree_1_ul"> <li id="foreignCurrencyTree_11_li"&g ...
- 浏览器控制之 selenium,phantomJs谷无头浏览器
目录 浏览器控制之 selenium,phantomJs谷无头浏览器 selenium phantomJs 需求是尽可能多的爬取豆瓣网中的电影信息 谷歌无头浏览器 浏览器控制之 selenium,ph ...
- scrapy框架的日志等级和请求传参, 优化效率
目录 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 请求传参 如何提高scripy的爬取效率 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 在使 ...