NOIP 2014 D2T3 解方程 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>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

儘管機器學習從20世紀50年代就已經存在,但隨著電腦變得越來越強大,數據在爆炸式增長,使得人們如何利用人工智慧獲得競爭優勢、提高洞察力和增長利潤展開了廣泛的實踐。對於不同的應用場景,機器學習與微分方程式都有廣泛的場景。所有人都已經使用機器學習了,尤其是基於神經網路的深度學習,chatGPT甚囂塵上,還需要深入理解微分方程麼?不論答案是啥,都會牽涉到二者的對比,那麼,機器學習與微分方程的差別又是什麼呢?從愛情模式的微分方程式說起這兩個方程式預測了夫妻戀愛關係的長久性,基於心理學家 John Got

Hash操作//為hash表中的欄位賦值。成功返回1,失敗返回0。若hash表不存在會先建立表格再賦值,若欄位已存在會覆寫舊值。 $ret=$redis->hSet('user','realname','jetwu');//取得hash表中指定欄位的值。若hash表不存在則回傳false。 $ret=$redis->hGet('user','rea

Laravel是目前最受歡迎的PHPweb框架之一,為開發人員提供了許多強大的功能和元件,其中LaravelHash也是其中之一。 LaravelHash是用於密碼雜湊的PHP函式庫,可用於保護密碼的安全,並使應用程式的使用者資料更加安全。在本文中,我們將了解LaravelHash的工作原理以及如何使用它來對密碼進行雜湊和驗證。前置知識在學習Lara

一、什麼是雜湊演算法雜湊和雜湊都來自單字hash,前者是音譯,後者是意譯。是一種可以將任意長度的二進位值映射為固定長度二進位值的演算法,映射後固定長度的二進位值稱為雜湊值。一個優秀的雜湊演算法需要滿足以下幾點要求:不能從雜湊值反向推導出原始資料;對輸入資料非常敏感,一個bit不同就會導致雜湊值非常不一樣;雜湊衝突的機率要很小;哈希演算法的計算過程要夠簡單高效,即使原始資料很長,也能很快得到哈希值;二、雜湊演算法的使用場景2.1 安全加密比較常見的雜湊加密演算法有MD5( MD5 Message-Dige

Redis資料型別Hash常用操作redis裡的hash是一個string類型的field(欄位)和value(值)的對應表。特別適合用於儲存對象,每個hash可以儲存40多億鍵值對。熟悉python的童鞋可以想像成字典dict。之前的資料型別儲存都是k-v這樣,而hash的儲存就是k-dict,dict裡又會有屬於自己的k-v。一、hset為雜湊表中的欄位賦值,如果雜湊表不存在,建立一個新的雜湊表被並進行hset操作。如果欄位已經存在於雜湊表中,則舊值將被覆寫。 hsetmyhashk1v1二、h

相互作用的電子在不同能量和溫度下表現出多樣的獨特現象,假如我們對其周圍環境進行改變,它們又會出現新的集體行為,例如自旋、配對波動等,然而處理電子之間的這些現象還存在很多困難。很多研究者使用重整化群(RenormalizationGroup,RG)來解決。在高維度資料背景下,機器學習(ML)技術和資料驅動方法的出現在量子物理學中引發了研究者巨大的興趣,到目前為止,ML思想已被用於電子系統的相互作用。本文中,來自博洛尼亞大學等機構的物理學家利用人工智慧,將一個迄今為止需要10萬個方程式的量子問題,壓縮

研究者希望透過機器學習方法,直接從高維非線性資料中自動挖掘最有價值和最重要的內在規律(即挖掘出問題背後以 PDE 為主的控制方程式),以實現自動知識發現。近日,東方理工、華盛頓大學、瑞萊智慧和北京大學等機構的研究團隊提出了一種基於符號數學的遺傳演算法SGA-PDE,建構了開放的候選集,可以從資料中直接挖掘任意形式的控制方程式。實驗表明,SGA-PDE 不但可以從數據中挖掘到 Burgers 方程式(具有交互項),Korteweg–de Vries 方程式(KdV,具有高階導數項),和 Chafee-In

雜湊方法的主要想法是根據結點的關鍵碼值來確定其儲存位址:以關鍵碼值K為自變量,透過一定的函數關係h(K)(稱為雜湊函數),計算出對應的函數值來
