传送门

废话不说,这道题暴力枚举是$O(N^6)$,显然无法承受。

推导一下

$(x_1*x_2+x_3)/x_4-x_5=x_6$

$x_1*x_2+x_3=x_4*(x_5+x_6)$

等式左边和右边的复杂度都是$O(N^3)$的,可以接受!

但是如果没开$O_2$不要用map,会被卡常,g++11的unorderded_map不错,但是大部分OJ并不滋次,建议手写hash,based要卡大点。

 //OJ 1869
 //by Cydiater
 //2016.9.13
 #include <iostream>
 #include <cstdio>
 #include <cstring>
 #include <queue>
 #include <map>
 #include <ctime>
 #include <cmath>
 #include <cstring>
 #include <string>
 #include <algorithm>
 #include <cstdlib>
 using namespace std;
 #define ll long long
 #define up(i,j,n)        for(ll i=j;i<=n;i++)
 #define down(i,j,n)        for(ll i=j;i>=n;i--)
 const ll oo=0x3f3f3f3f;
 ;
 ;
 inline ll read(){
     ,f=;
     ;ch=getchar();}
     +ch-';ch=getchar();}
     return x*f;
 }
 ll lable[];
 ll N,a[],ans=;
 struct HashTable{
     ll Value[];
     HashTable(){up(i,,mod+)Value[i]=-oo;}
     ll Hash_value(ll num){
         ll tmp=num;
         num%=mod;num+=mod;num%=mod;
         while(Value[num]!=tmp){
             if(Value[num]==-oo){
                 Value[num]=tmp;
                 return num;
             }
             num+=step;num%=mod;
         }
         return num;
     }
 }hash;
 namespace solution{
     void pret(){
         up(i,,N)up(j,,N)up(k,,N))lable[hash.Hash_value(a[i]*(a[j]+a[k]))]++;
     }
     void init(){
         N=read();
         up(i,,N)a[i]=read();
     }
     void slove(){
         up(i,,N),N),N)/*x_2*/
         ans+=lable[hash.Hash_value(a[i]+a[j]*a[k])];
     }
     void output(){
         cout<<ans<<endl;
     }
 }
 int main(){
     //freopen("input.in","r",stdin);
     using namespace solution;
     init();
     pret();
     slove();
     output();
     //cout<<"Time has passed:"<<1.0*clock()/1000<<"s!"<<endl;
     ;
 }

SPOJ:ABCDEF的更多相关文章

  1. Meet in the middle算法总结 (附模板及SPOJ ABCDEF、BZOJ4800、POJ 1186、BZOJ 2679 题解)

    目录 Meet in the Middle 总结 1.算法模型 1.1 Meet in the Middle算法的适用范围 1.2Meet in the Middle的基本思想 1.3Meet in ...

  2. SPOJ ABCDEF题解

    题面 源 OJ 未 AC(卡 \(map\) ,不想写 \(hash\) ). 看到 \(n \leq 100\) ,显然 \(O(n^6)\) 会挂掉,所以要优化. 考虑到原式可化为 \(a \ti ...

  3. OI卷题记录

    2021.8.2 LG3386 匈牙利算法 二分图 LG1377 笛卡尔树 题解 2021.8.3 LG2962 \(\text{Meet in middle}\) LG3389 高斯消元 高斯-约旦 ...

  4. BZOJ 2588: Spoj 10628. Count on a tree [树上主席树]

    2588: Spoj 10628. Count on a tree Time Limit: 12 Sec  Memory Limit: 128 MBSubmit: 5217  Solved: 1233 ...

  5. SPOJ DQUERY D-query(主席树)

    题目 Source http://www.spoj.com/problems/DQUERY/en/ Description Given a sequence of n numbers a1, a2, ...

  6. SPOJ GSS3 Can you answer these queries III[线段树]

    SPOJ - GSS3 Can you answer these queries III Description You are given a sequence A of N (N <= 50 ...

  7. 【填坑向】spoj COT/bzoj2588 Count on a tree

    这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ...

  8. SPOJ bsubstr

    题目大意:给你一个长度为n的字符串,求出所有不同长度的字符串出现的最大次数. n<=250000 如:abaaa 输出: 4 2 1 1 1 spoj上的时限卡的太严,必须使用O(N)的算法那才 ...

  9. 【SPOJ 7258】Lexicographical Substring Search

    http://www.spoj.com/problems/SUBLEX/ 好难啊. 建出后缀自动机,然后在后缀自动机的每个状态上记录通过这个状态能走到的不同子串的数量.该状态能走到的所有状态的f值的和 ...

随机推荐

  1. java并发:阻塞队列

    第一节 阻塞队列 1.1 初识阻塞队列 队列以一种先进先出的方式管理数据,阻塞队列(BlockingQueue)是一个支持两个附加操作的队列,这两个附加的操作是:在队列为空时,获取元素的线程会等待队列 ...

  2. JavaScript 总结几个提高性能知识点

    前段时间花时间看了大半的<High Performance JavaScript>这本书啊,然后就开始忙项目了,庆幸最忙的一周已经熬过去了.由于空不出时间,这个月写的学习笔记也不多,忙完最 ...

  3. 使用spring boot和thrift、zookeeper建立微服务

    Spring cloud适应于云端服务,也适用于企业信息化SOA建设.spring boot也是restful微服务开发的利器.但对于内网服务,即服务与服务之间的调用,spring并没有去刻意封装,也 ...

  4. Bash on Windows 抢鲜测试 -- 介绍及安装

    前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...

  5. JS 问题集锦

    [1]js页面跳转 和 js打开新窗口方法 第一种: <script language="javascript" type="text/javascript&quo ...

  6. 【JavaEE企业应用实战学习记录】MyGetAttributeListener

    package sanglp.servlet; import javax.servlet.ServletContext; import javax.servlet.ServletContextAttr ...

  7. android 一条线

    还在为布局的时候做不出来一条细细的线而烦恼么? 哈哈,自从知道了写法腰也不酸了,腿也不疼了!一口气写100行!! <View android:layout_height="1px&qu ...

  8. Mybatis学习--spring和Mybatis整合

    简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进 ...

  9. canvas三角函数做椭圆运动效果

    <canvas id="canvas" width="800" height="400" style="background ...

  10. java-Date、String、Calendar转化

    1.Calendar 转化 String //获取当前时间的具体情况,如年,月,日,week,date,分,秒等 Calendar calendat = Calendar.getInstance(); ...