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>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Operasi cincang //Tetapkan nilai pada medan dalam jadual cincang. Mengembalikan 1 pada kejayaan dan 0 pada kegagalan. Jika jadual cincang tidak wujud, jadual akan dibuat dahulu dan kemudian nilai akan diberikan Jika medan sudah wujud, nilai lama akan ditimpa. $ret=$redis->hSet('user','realname','jetwu');//Dapatkan nilai medan yang ditentukan dalam jadual cincang. Jika jadual cincang tidak wujud, kembalikan palsu. $ret=$redis->hGet('user','rea

Walaupun pembelajaran mesin telah wujud sejak tahun 1950-an, kerana komputer telah menjadi lebih berkuasa dan data telah meletup, terdapat amalan yang meluas dalam cara orang boleh menggunakan kecerdasan buatan untuk memperoleh kelebihan daya saing, meningkatkan cerapan dan meningkatkan keuntungan. Untuk senario aplikasi yang berbeza, pembelajaran mesin dan persamaan pembezaan mempunyai pelbagai senario. Semua orang telah menggunakan pembelajaran mesin, terutamanya pembelajaran mendalam berdasarkan rangkaian saraf ChatGPT sangat popular Adakah anda masih perlu memahami persamaan pembezaan secara mendalam. Tidak kira apa jawapannya, ia akan melibatkan perbandingan antara kedua-duanya Jadi, apakah perbezaan antara pembelajaran mesin dan persamaan pembezaan? Mari kita mulakan dengan persamaan pembezaan model cinta Kedua-dua persamaan ini meramalkan jangka hayat hubungan pasangan, berdasarkan ahli psikologi John Got

Laravel kini merupakan salah satu rangka kerja web PHP yang paling popular, menyediakan pembangun dengan banyak ciri dan komponen yang berkuasa, yang mana LaravelHash adalah salah satu daripadanya. LaravelHash ialah perpustakaan PHP untuk pencincangan kata laluan yang boleh digunakan untuk memastikan kata laluan selamat dan menjadikan data pengguna aplikasi anda lebih selamat. Dalam artikel ini, kita akan mempelajari cara LaravelHash berfungsi dan cara menggunakannya untuk mencincang dan mengesahkan kata laluan. Pengetahuan prasyarat dalam pembelajaran Lara

1. Apakah algoritma pencincangan? Kedua-dua pencincangan dan pencincangan berasal daripada perkataan pencincangan yang pertama ialah transliterasi dan yang kedua ialah terjemahan percuma. Ia adalah algoritma yang boleh memetakan nilai perduaan sebarang panjang ke dalam nilai perduaan panjang tetap Nilai perduaan panjang tetap dipetakan dipanggil nilai cincang. Algoritma cincang yang sangat baik perlu memenuhi keperluan berikut: ia tidak boleh menyimpulkan secara terbalik data asal daripada nilai cincang ia sangat sensitif kepada data input, dan bit yang berbeza akan menyebabkan nilai cincang menjadi sangat berbeza; konflik mestilah Sangat kecil; proses pengiraan algoritma cincang mestilah mudah dan cekap, walaupun data asal adalah sangat panjang, nilai cincang boleh diperolehi dengan cepat 2. Senario penggunaan algoritma cincang 2.1 Penyulitan selamat algoritma penyulitan cincang biasa termasuk MD5 ( MD5 Message-Dige

Idea utama kaedah cincang adalah untuk menentukan alamat storan nod berdasarkan nilai kuncinya: mengambil nilai kunci K sebagai pembolehubah bebas, dan melalui hubungan fungsi tertentu h(K) (dipanggil fungsi cincang) , nilai fungsi yang sepadan datang

Penyelidik berharap dapat menggunakan kaedah pembelajaran mesin untuk melombong secara automatik undang-undang intrinsik yang paling berharga dan penting secara langsung daripada data bukan linear berdimensi tinggi (iaitu, untuk melombong persamaan pentadbir berasaskan PDE di sebalik masalah) untuk mencapai penemuan pengetahuan automatik. Baru-baru ini, pasukan penyelidik dari Institut Teknologi Timur, Universiti Washington, Ruilai Intelligence, Universiti Peking dan institusi lain mencadangkan algoritma genetik SGA-PDE berdasarkan matematik simbolik, membina set calon terbuka yang boleh melombong terus sebarang bentuk kawalan daripada data persamaan. Eksperimen menunjukkan bahawa SGA-PDE bukan sahaja boleh melombong persamaan Burger (dengan istilah interaksi), persamaan Korteweg–de Vries (KdV, dengan istilah terbitan tertib tinggi) dan Chafee-In

Redis ialah pangkalan data storan nilai kunci berprestasi tinggi biasa. Ia menyokong berbilang jenis data, seperti rentetan, cincang, senarai, set dan set disusun, serta menyediakan pelbagai arahan untuk mengendalikan jenis data ini. Dalam artikel ini, kami akan melihat secara mendalam pada tiga jenis data Redis yang paling biasa digunakan: kunci, rentetan dan cincang, serta memperkenalkan arahan biasa mereka. Kunci keyRedis ialah jenis rentetan, yang boleh

Dalam era digital sekarang, Internet telah menjadi sebahagian daripada kehidupan orang ramai. Bagi mereka yang kerap menggunakan Internet untuk bekerja, belajar atau hiburan, mempunyai komputer yang berkuasa adalah penting. Artikel ini akan memperkenalkan anda kepada konfigurasi yang disyorkan bagi komputer tapak web serba boleh dari banyak aspek dan membantu anda memilih pemproses komputer yang sesuai dengan keperluan anda Pemproses ialah salah satu komponen teras komputer, yang menentukan kelajuan berjalan komputer dan prestasi. Untuk komputer laman web serba guna, memilih pemproses yang sesuai adalah sangat penting. Pemproses berbilang teras sesuai untuk mengendalikan berbilang tugas, dan pemproses frekuensi tinggi boleh memberikan kelajuan pengkomputeran yang lebih pantas. Sebagai contoh, pemproses siri i7 Intel mempunyai prestasi berbilang teras yang berkuasa dan kelajuan jam yang tinggi, menjadikannya ideal untuk pembangunan tapak web yang kompleks dan kerja reka bentuk.
