ホームページ データベース mysql チュートリアル NOIP 2014 D2T3 解方程 Hash大法好

NOIP 2014 D2T3 解方程 Hash大法好

Jun 07, 2016 pm 03:48 PM
hash 大きい 方程式

题目大意:给定高次方程an*x^n...a1*x^1a0*x^0=0 求[1,m]区间内有多少个整数根 ai=10^10000,m=100W 懒得高精,考场上写的long double乱搞……30分打底50分顶天QAQ 当我终于搞定了各种非官方数据之后,我只能长跪大地,手捧鲜花,仰望上苍高喊:哈希大法好!

题目大意:给定高次方程an*x^n+...+a1*x^1+a0*x^0=0 求[1,m]区间内有多少个整数根

ai

懒得高精,考场上写的long double乱搞……30分打底50分顶天QAQ

当我终于搞定了各种非官方数据之后,我只能长跪大地,手捧鲜花,仰望上苍高喊:哈希大法好!

首先阿贝尔在200年前告诉我们 五次以上方程没有求根公式 于是我们只能枚举1~m 这个是100W

然后100W再加上1W位的精度 都不用运算直接就是跪…… 怎么办呢QAQ

哈希大法好!

令f(x)=an*x^n+...+a1*x^1+a0*x^0 易知若f(x)=0 则f(x) mod p=0

反之如果f(x) mod p=0 那么我们基本可以得出f(x)=0 p比较靠谱的时候碰撞率极低

所以我们把所有的ai都对p取模 然后对于每个解O(n)验证即可

这样是O(m*n)的 可以拿到70分 p比较靠谱的话不会挂

那么100分怎么办呢?

哈希大法好!

我们很容易就会发现f(x+p) mod p=f(x) mod p

于是我们选择一个小一些的p,预处理出0~p-1所有的f(x),然后超过p的取模即可

但是p不够大会挂啊!

于是我们多选择几个p 分别取一遍mod 只有一个值对所有的p取模之后全都0才算作解

哈希大法好!Hash Killer III至今无人AC就是在证明这个算法的正确性!哈希万岁!哈希赛高!哈希万年推!

时间复杂度O(nΣp+m) 其中Σp是选择的所有质数之和 一般选择1W左右的质数就行了

不知道为什么不管考场上拿了多少分只要回来把题切了就算做精神AC了0.0……

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 110
using namespace std;
typedef long long ll;
const int prime[]={10007,11261,14843,19997,21893};
int n,m,stack[1001001],top;
ll a[M][5],f[21893][5];
inline ll F(int x,int j)
{
    int i;
    ll re=0;
    for(i=n;~i;i--)
        re=(re*x+a[i][j])%prime[j];
    return re;
}
inline void Input(int x)
{
    static char s[10100];
    int i,j;
    bool flag=false;
    scanf("%s",s+1);
    for(i=1;s[i];i++)
    {
        if(s[i]=='-')
            flag=true;
        else
            for(j=0;j>n>>m;
    for(i=0;i<br>
<br>



</algorithm></iostream></cstring></cstdio>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでRedisハッシュ操作を実装する方法 PHPでRedisハッシュ操作を実装する方法 May 30, 2023 am 08:58 AM

ハッシュ演算 //ハッシュテーブルのフィールドに値を代入します。成功した場合は 1 を返し、失敗した場合は 0 を返します。ハッシュ テーブルが存在しない場合は、まずテーブルが作成されてから値が割り当てられ、フィールドが既に存在する場合は古い値が上書きされます。 $ret=$redis->hSet('user','realname','jetwu');//ハッシュ テーブル内の指定されたフィールドの値を取得します。ハッシュ テーブルが存在しない場合は false を返します。 $ret=$redis->hGet('ユーザー','rea

機械学習と微分方程式の簡単な分析 機械学習と微分方程式の簡単な分析 Apr 04, 2023 pm 12:10 PM

機械学習は 1950 年代から存在していましたが、コンピューターがより強力になり、データが爆発的に増加するにつれて、人々が人工知能を使用して競争上の優位性を獲得し、洞察を改善し、利益を拡大する方法が広く実践されてきました。さまざまなアプリケーション シナリオに合わせて、機械学習と微分方程式には幅広いシナリオがあります。誰もがすでに機械学習、特にニューラル ネットワークに基づくディープ ラーニングを使用したことがあります。ChatGPT は非常に人気があります。微分方程式をさらに深く理解する必要がありますか?では、機械学習と微分方程式の違いは何でしょうか?恋愛モデルの微分方程式から始めましょう。これら 2 つの方程式は、心理学者のジョン ゴットに基づいて、カップルの関係の寿命を予測します。

Laravel 開発: Laravel ハッシュを使用してパスワード ハッシュを生成するにはどうすればよいですか? Laravel 開発: Laravel ハッシュを使用してパスワード ハッシュを生成するにはどうすればよいですか? Jun 17, 2023 am 10:59 AM

Laravel は現在最も人気のある PHP Web フレームワークの 1 つであり、開発者に多くの強力な機能とコンポーネントを提供しており、LaravelHash もその 1 つです。 LaravelHash は、パスワードを安全に保ち、アプリケーションのユーザー データをより安全にするために使用できるパスワード ハッシュ用の PHP ライブラリです。この記事では、LaravelHash の仕組みと、LaravelHash を使用してパスワードをハッシュし検証する方法を学びます。 Lara を学習するための前提知識

ハッシュ アルゴリズムとアプリケーション シナリオを 1 つの記事で理解する ハッシュ アルゴリズムとアプリケーション シナリオを 1 つの記事で理解する Apr 13, 2023 am 11:55 AM

1. ハッシュアルゴリズムとは? ハッシュとハッシングはどちらもハッシュという言葉から来ており、前者は音訳、後者は意訳です。任意の長さのバイナリ値を固定長のバイナリ値にマッピングできるアルゴリズムで、マッピングされた固定長のバイナリ値をハッシュ値と呼びます。優れたハッシュ アルゴリズムは、次の要件を満たす必要があります: ハッシュ値から元のデータを逆に推定できないこと、入力データの影響を非常に受けやすく、ビットが異なるとハッシュ値が大きく異なることになること、ハッシュの確率が高いこと競合は非常に小さい必要があります; ハッシュ アルゴリズムの計算プロセスは単純かつ効率的である必要があり、元のデータが非常に長い場合でも、ハッシュ値を迅速に取得できます; 2. ハッシュ アルゴリズムの使用シナリオ 2.1 安全な暗号化 詳細一般的なハッシュ暗号化アルゴリズムには MD5 (MD5 Message-Dige) が含まれます。

毎日使ってください! HASHって知っていますか? 毎日使ってください! HASHって知っていますか? Jul 26, 2023 pm 02:47 PM

ハッシュ法の主な考え方は、キー値に基づいてノードのストレージ アドレスを決定することです。キー値 K を独立変数として取り、特定の関数関係 h(K) (ハッシュ関数と呼ばれます) を通じて、ノードのストレージ アドレスを決定します。 、対応する関数値が来ます

方程式は二分木フォレストですか?未知の支配方程式や物理メカニズムをデータから直接発見 方程式は二分木フォレストですか?未知の支配方程式や物理メカニズムをデータから直接発見 Apr 08, 2023 pm 06:11 PM

研究者らは、機械学習手法を使用して、最も価値があり重要な固有法則を高次元の非線形データから直接自動的にマイニングし(つまり、問題の背後にある PDE ベースの支配方程式をマイニングし)、自動知識発見を実現したいと考えています。最近、東部工科大学、ワシントン大学、瑞来知能、北京大学の研究チームは、記号数学に基づく遺伝的アルゴリズム SGA-PDE を提案し、データからあらゆる形式の制御を直接マイニングできるオープン候補セットを構築しました。 。実験により、SGA-PDE は Burgers 方程式 (相互作用項を含む)、Korteweg-de Vries 方程式 (KdV、高次の微分項を含む)、および Chafee-In をマイニングできるだけではないことが示されています。

Redisの基本データ型であるHashの一般的な操作例の分析 Redisの基本データ型であるHashの一般的な操作例の分析 May 31, 2023 am 10:43 AM

Redis データ型の共通操作 Hash Redis の Hash は、文字列型のフィールドと値のマッピング テーブルです。オブジェクトの保存に特に適しており、各ハッシュは 40 億を超えるキーと値のペアを保存できます。 Python に慣れている子供用の靴は、Python を辞書の辞書と考えることができます。以前のデータ型ストレージは k-v で、ハッシュ ストレージは k-dict で、dict には独自の k-v が設定されます。 1. hset はハッシュ テーブルのフィールドに値を割り当てますが、ハッシュ テーブルが存在しない場合は、新しいハッシュ テーブルを作成して hset 操作を実行します。フィールドがハッシュ テーブルにすでに存在する場合、古い値は上書きされます。 hsetmyhashk1v1 2、h

Redis コマンドの詳細な説明: キー、文字列、ハッシュ Redis コマンドの詳細な説明: キー、文字列、ハッシュ Jun 21, 2023 am 09:21 AM

Redis は、一般的な高パフォーマンスのキー/値ストレージ データベースです。文字列、ハッシュ、リスト、セット、ソートセットなどの複数のデータ型をサポートし、これらのデータ型を操作するためのさまざまなコマンドを提供します。この記事では、最も一般的に使用される 3 つの Redis データ型 (キー、文字列、ハッシュ) を詳しく調べ、それらの一般的なコマンドを紹介します。 keyRedis のキーは文字列型です。

See all articles