2018icpc南京现场赛-G Pyramid(打标找规律+逆元)
题意:

求n行三角形中等边三角形个数,图二的三角形也算。
n<=1e9
思路:
打表找下规律,打表方法:把所有点扔坐标系里n^3爆搜即可
打出来为 1,5,15,35,70,126,210..
没感觉,作差 4, 10, 20, 35, 56, 84
还是没感觉,作差 6, 10, 15, 21, 28
发现此时的差递增1?也就是再作差4, 5, 6, 7是等差数列
也就是再作差1, 1, 1为常数
相当于函数$A_n$求四次导为常数!(如果他是个连续函数的话)
于是我们设$\displaystyle A_n = a*n^4+b*n^3+c*n^2+d*n+e$ (别忘记常数)
解出a, b, c, d, e,
然后逆元+O(1)代公式就完事了
打表代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<string>
//#include<stack>
#include<queue>
#include<deque>
#include<set>
#include<vector>
#include<map>
#include<functional> #define fst first
#define sc second
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a))
#define lson l,mid,root<<1
#define rson mid+1,r,root<<1|1
#define lc root<<1
#define rc root<<1|1
#define lowbit(x) ((x)&(-x))
#define mp make_pair using namespace std; typedef double db;
typedef long double ldb;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PI;
typedef pair<ll,ll> PLL; const db eps = 1e-;
const int mod = 1e9+;
const int maxn = 2e6+;
const int maxm = 2e6+;
const int inf = 0x3f3f3f3f;
const db pi = acos(-1.0); vector<pair<double,double> >v;
struct point{
double x, y;
point(){}
point(double a, double b){x = a; y = b;}
};
double h = 0.5 *sqrt();
double len(pair<double,double>a, pair<double,double>b){
return (a.fst-b.fst)*(a.fst-b.fst)+(a.sc-b.sc)*(a.sc-b.sc);
}
bool eq(double a, double b){
if(fabs(a-b)<1e-)return true;
return false;
}
int main(){
v.pb(mp(,));
for(int i = ; i <= ; i++){
if(i&){
for(int j = ; j < i/+; j++){
v.pb(mp(j*1.0+0.5,-i*h));
v.pb(mp(-j*1.0-0.5,-i*h));
}
}
else{
v.pb(mp(,-i*h));
for(int j = ; j <= i/; j++){
v.pb(mp(j*1.0,-i*h));
v.pb(mp(-j*1.0,-i*h));
}
}
int cnt = ;
for(int j = ; j < (int)v.size(); j++){
for(int k = j+; k < (int)v.size(); k++){
for(int g = k+; g < (int)v.size(); g++){
if(eq(len(v[j],v[k]),len(v[k],v[g]))&&eq(len(v[j],v[k]),len(v[j],v[g])))cnt++;
}
}
}
printf("%d\n",cnt);
} return ;
}
/*
3 5 0
4 1 2 3 5
2 2 5
2 1 2 5 10 2
2 3 10
5 1 3 4 6 10
5 3 4 6 8 9
3 1 9 10
5 1 3 6 7 10 */
2018icpc南京现场赛-G Pyramid(打标找规律+逆元)的更多相关文章
- 2018ICPC南京站Problem G. Pyramid
题意: 找有多少个等边三角形 解析: 首先打标找规律,然后对式子求差分 0,1,5,15,35,70,126,210... 1,4,10,20,35,56... 3,6,10,15,21... 3,4 ...
- 2018icpc南京现场赛-I Magic Potion(最大流)
题意: n个英雄,m个怪兽,第i个英雄可以打第i个集合里的怪兽,一个怪兽可以在多个集合里 有k瓶药水,每个英雄最多喝一次,可以多打一只怪兽,求最多打多少只 n,m,k<=500 思路: 最大流, ...
- 2018ICPC南京网络赛
2018ICPC南京网络赛 A. An Olympian Math Problem 题目描述:求\(\sum_{i=1}^{n} i\times i! \%n\) solution \[(n-1) \ ...
- Gym101981D - 2018ACM-ICPC南京现场赛D题 Country Meow
2018ACM-ICPC南京现场赛D题-Country Meow Problem D. Country Meow Input file: standard input Output file: sta ...
- 2018ICPC青岛现场赛 重现训练
先贴代码,以及简要题解. 和一个队友下午双排打了一下,队友光速签到,我签的J被嫌弃写得慢以及演员...然后我秒出了E了思路然而难以置信这么简单的思路当时才过了十几个,于是发现D.F不是太好做.最后交了 ...
- bzoj1002 轮状病毒 暴力打标找规律/基尔霍夫矩阵+高斯消元
基本思路: 1.先观察规律,写写画画未果 2.写程序暴力打表找规律,找出规律 1-15的答案:1 5 16 45 121 320 841 2205 5776 151 ...
- 2013ACM-ICPC亚洲区南京站现场赛G题
题目大意:一个n维的系统中随机选一个向量(X1,X2,X3,...,Xn),其中0<=Xi<=R,且X1^2+X2^2+X3^2+……+Xn^2 <= R^2. 现在给定n,R.求X ...
- 2018南京区域赛G题 Pyramid——找规律&&递推
先手动推出前10项,再上BM板子求出递推式 $A_n = 5A_{n-1} - 10A_{n-2} + 10A_{n-3} - 5A_{n-4} + A_{n-5}$,根据特征根理论可求出特征方程 $ ...
- hdu-----2491Priest John's Busiest Day(2008 北京现场赛G)
Priest John's Busiest Day Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
随机推荐
- Activity启动过程源码分析(Android 8.0)
Activity启动过程源码分析 本文来Activity的启动流程,一般我们都是通过startActivity或startActivityForResult来启动目标activity,那么我们就由此出 ...
- Java散点
1.在Java中,所有需要保存在常量池中的数据,长度最大不能超过65535,这当然也包括字符串的定义
- Python 线性回归(Linear Regression) 基本理解
背景 学习 Linear Regression in Python – Real Python,对线性回归理论上的理解做个回顾,文章是前天读完,今天凭着记忆和理解写一遍,再回温更正. 线性回归(Lin ...
- 再也不怕和老外交流了!我用python实现一个微信聊天翻译助手!
前言 在前面的一篇文章如何用python“优雅的”调用有道翻译中咱们清楚的写过如何一层一层的解开有道翻译的面纱,并且笔者说过那只是脑洞的开始.现在笔者又回来了.当你遇到一些外国小哥哥小姐姐很心动.想结 ...
- 源码详解系列(六) ------ 全面讲解druid的使用和源码
简介 druid是用于创建和管理连接,利用"池"的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制.连接可靠性测试.连接泄露控制.缓存语句等功能,另外,druid还扩展 ...
- 【一起学源码-微服务】Hystrix 源码三:Hystrix核心流程:Hystix降级、熔断等原理剖析
说明 原创不易,如若转载 请标明来源! 欢迎关注本人微信公众号:壹枝花算不算浪漫 更多内容也可查看本人博客:一枝花算不算浪漫 前言 前情回顾 上一讲我们讲解了Hystrix在配合feign的过程中,一 ...
- Go 每日一库之 cobra
简介 cobra是一个命令行程序库,可以用来编写命令行程序.同时,它也提供了一个脚手架, 用于生成基于 cobra 的应用程序框架.非常多知名的开源项目使用了 cobra 库构建命令行,如Kubern ...
- 一些触发XSS的姿势(未完待续)
本文对一些能触发XSS的方式进行记录与学习. HTML5特性向量 通过formaction属性进行XSS - 需要用户进行交互 formaction 属性规定当表单提交时处理输入控件的文件的 URL. ...
- hdu6601 主席树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6601 Problem Description N sticks are arranged in a r ...
- 关于爬虫的日常复习(7)—— DOM操作及selenium库