日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

D2下午

發布時間:2025/7/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 D2下午 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

至于為什么D2要分上下午,唯一的原因就是lyd那個毒瘤用了一上午講他昨天要講的鬼畜東西,所以今天下午才開始講數論了

對了,補一下lyd的數論人

《數論人》(大霧) 數論的光束是歌德巴赫 那是誰?是誰?是誰? 將數論之力 集于一身 那是數論 數論人 數論人 正義的英雄 背負著純粹數學之名 數論人 數論人 舍棄了一切(指實際生產)去戰斗的男人 數論之箭是費馬大定理 數論之耳是四色定理 數論之翼是黎曼猜想

開始吧

各種各樣的高精

這個魔鬼上來就講高精度

因為都學會了,就直接看當年的博客吧(惆悵

快速冪

這個其實是基于倍增思想?(反正很多東西都是相通的

其實就是/2下取整等等操作,代碼如下

int power(int a, int p) {long long res = 1;while (p){if (p & 1)res = res * a;a = a * a;p >>= 1;}return res; }

矩陣乘法

一個i行k列的矩陣乘上一個k行j列的矩陣會變成i行j列的矩陣

答案矩陣的第i,j個元素為A矩陣第i行第k個元素乘B矩陣第k行第j個元素,k是從1到m,就是一個矩陣的行乘另一個矩陣的列

上一下代碼

for (int i = 1;i <= n; ++i)for (int k = 1;k <= m; ++k)for (int j = 1;j <= r;++j)c[i][j] + a[i][k] * b[k][j];

矩陣乘法常常用于求一些線性的遞歸方程組,可以起到非常牛逼的加速作用

比如斐波那契的矩陣就是

1 1 1 0 [f[n], f[n - 1] ] * [矩陣] ^ k = [f[n + k], [n + k - 1] ]

矩陣快速冪基于以下的原理,即可以找到一個矩陣 M使得
[F(n-1) F(n)]T * M = [F(n) F(n+1)] T

以斐波拉期數列為例:M = ((1 1) (1 0))

以此類推:

[F(0) F(1)]T * Mn = [F(n) F(n+1)]T

我們成功將一個遞推式轉化成了一個求矩陣冪的問題

利用快速冪算法可以將時間縮短為 O(d^3 logn)

利用 FFT + 矩陣特征多項式的黑科技可以把時間進一步縮短到 O(dlogdlogn)

我們來試著寫一下下面的矩陣:

F(n) = 7F(n-1) + 6F(n-2) + 5n + 4 * 3^n

先考慮轉換前后的兩個矩陣,肯定要有所有在轉換中需要的

我們發現如果要從f[n-1]轉換到f[n],要用到f[n-1],f[n-2],n,3^n,我們就先寫上這些

然后發現n要轉換到n+1就需要個1,再加上1就好了

[f[n - 1], f[n - 2], n, 3 ^ n, 1]

[f[n], f[n - 1], n + 1, 3 ^ (n + 1) ,1]

然后按照遞推式搞一搞就ok

高斯消元

這個東西和行列式求值也比較像,其實就是用矩陣運算吧
這是曾經的一個代碼

#include <iostream> #include <string> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; double n, a[20][20], ans = 1; int sum; inline void CH1(int x, int y, double k) //第y行減k*x {for (int i = 1; i <= n; ++i)a[y][i] -= (double)(k * a[x][i]); } inline void CH2(int x, int y) //交換x列和y列 {for (int i = 1; i <= n; ++i)swap(a[i][x], a[i][y]); } inline double CH3(int x, double k) //把第x行提出一個公因數k {for (int i = 1; i <= n; ++i)a[x][i] /= k;return k; } int main() {scanf("%lf", &n);for (int i = 1; i <= n; ++i)for (int j = 1; j <= n; ++j)scanf("%lf", &a[i][j]);for (int i = 1; i < n; ++i){ sum=i;while (a[i][i] == 0 && sum<=n) //對是否a[i][i]是0的特判{CH2(i, sum + 1); //交換x列和y列ans *= -1;sum++;}ans *= CH3(i, a[i][i]);for (int j = i + 1; j <= n; ++j)CH1(i, j, a[j][i]);}for (int i = 1; i <= n; ++i)ans *= a[i][i];printf("%0.0lf", ans);return 0; }

這個是lh神仙的高斯消元

#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pr; const double pi = acos(-1); #define rep(i, a, n) for (int i = a; i <= n; i++) #define per(i, n, a) for (int i = n; i >= a; i--) #define Rep(i, u) for (int i = head[u]; i; i = Next[i]) #define clr(a) memset(a, 0, sizeof a) #define pb push_back #define mp make_pair #define fi first #define sc second ld eps = 1e-9; ll pp = 1000000007; ll mo(ll a, ll pp) {if (a >= 0 && a < pp)return a;a %= pp;if (a < 0)a += pp;return a; } ll powmod(ll a, ll b, ll pp) {ll ans = 1;for (; b; b >>= 1, a = mo(a * a, pp))if (b & 1)ans = mo(ans * a, pp);return ans; } ll read() {ll ans = 0;char last = ' ', ch = getchar();while (ch < '0' || ch > '9')last = ch, ch = getchar();while (ch >= '0' && ch <= '9')ans = ans * 10 + ch - '0', ch = getchar();if (last == '-')ans = -ans;return ans; } //head int n, m; double a[100][100];bool check(int k) {if (fabs(a[k][n + 1]) < eps)return 1;rep(i, 1, n) if (fabs(a[k][i]) > eps) return 1;return 0; } int main() {n = read();m = n;rep(i, 1, m)rep(j, 1, n + 1) a[i][j] = read();int flag = 0;rep(i, 1, n){int t = i;while (a[t][i] == 0 && t <= n)t += 1;if (t == n + 1){flag = 1;continue;}rep(j, 1, n + 1) swap(a[i][j], a[t][j]); //交換兩行double kk = a[i][i]; //每一行對角線上的值rep(j, 1, n + 1) a[i][j] /= kk;rep(j, 1, m) //循環m個式子 開始消元if (i != j){double kk = a[j][i];rep(k, 1, n + 1)a[j][k] -= kk * a[i][k];}}if (flag){return printf("No Solution\n"), 0;}rep(j, 1, m){printf("%.2lf", a[j][n + 1] / a[j][j]);puts("");}return 0; }

數論好惡心

篩法

篩法的話一般就是埃拉托色尼篩或者是歐拉篩(線性篩)

埃拉托色尼篩

思想就是所有質數的倍數都被篩掉

memset(b, false, sizeof(b));int tot = 0;for (int i = 2; i <= n; ++i){if (!b[i]){prime[++tot] = i;for (int j = i * 2; j <= n; j += i)b[j] = true;}}

歐拉篩(線性篩)


保證了所有的數只被最小的質因數篩掉

歐拉篩還可以用來維護一些復雜的函數值
如:逆元、一個數的質因數分解中最大的指數的值

積性函數

積性函數:對于所有互質的 x 和 y,F(x * y) = F(x) * F(y)

完全積性函數:對于所有 x 和 y ,F(x * y) = F(x) * F(y)

常見的積性函數:
歐拉函數 φ(n) :不超過 n 與 n 互素的數的個數

若則

轉載于:https://www.cnblogs.com/this-is-M/p/11201085.html

總結

以上是生活随笔為你收集整理的D2下午的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色a免费 | 五月天综合激情 | 熟女人妻在线视频 | 精品三级视频 | 国产绿帽刺激高潮对白 | 91精品福利视频 | 99精品国产一区二区 | 不卡欧美 | 波多野结衣视频在线播放 | 极品福利视频 | 亚洲国产成 | 天堂精品一区 | 91丝袜呻吟高潮美腿白嫩在线观看 | 日韩精品在线观看中文字幕 | 特一级黄色片 | 日韩天堂一区 | 艳妇乳肉豪妇荡乳 | 国产福利专区 | 麻豆国产在线 | 二色av| 国产精品30p| 日本人の夫妇交换 | 国产乱人乱精一区二视频国产精品 | 国产一区毛片 | 亚洲一区二区三区av无码 | 欧美在线看片 | 国产成人在线视频免费观看 | 人妻一区二区三区视频 | 亚洲双插 | 懂色a v| 中文字幕 自拍偷拍 | 中国女人真人一级毛片 | 国产高清毛片 | 激情视频网址 | 综合久久综合久久 | 日本高清xxx| 99reav| 99在线免费观看视频 | 日韩不卡在线视频 | 成人黄色短视频在线观看 | 狠狠操在线视频 | 亚洲综合免费观看高清完整版 | 亚洲第一黄色片 | 无码无套少妇毛多18pxxxx | 国产精品热久久 | 麻豆视频传媒入口 | 在线看片网站 | 无码国内精品人妻少妇蜜桃视频 | 欧美热热 | 国产在线观看免费视频软件 | 亚洲色图偷拍视频 | 香蕉视频在线观看免费 | 亚洲精品高清视频 | 欧美激情图片 | 欧美一区二区三区成人久久片 | 成人毛片视频在线观看 | 亚洲激情欧美激情 | 亚洲美女综合 | 成人免费av在线 | 日韩精品在线一区二区三区 | 国产黄视频在线观看 | 毛片自拍 | 天天色综| 日本午夜影院 | 熟妇高潮一区二区高潮 | 极品美妇后花庭翘臀娇吟小说 | 亚洲午夜精选 | jiizzyou性欧美老片 | 午夜播放 | 国产91在线精品 | 波多野结衣免费观看视频 | 亚洲欧美网站 | 欧美三个黑人玩3p | 国产91小视频 | 日本xx视频免费观看 | 蜜桃视频一区二区三区在线观看 | 艳妇臀荡乳欲伦交换h漫 | 成人黄色短视频在线观看 | 丁香七月婷婷 | 久久综合色综合 | 91亚洲精品久久久久久久久久久久 | 91精品国产91久久久久青草 | 国产成人一区二区三区别 | 一区二区高清在线 | 三年大全国语中文版免费播放 | 欧美日韩国产黄色 | 亚洲精品在线免费观看视频 | 日韩一区二区三区在线视频 | 日韩欧美高清 | 色伊伊 | 色爱视频 | 农村脱精光一级 | 调教一区二区三区 | 午夜视频a | 欧美大片一区 | 亚洲www啪成人一区二区麻豆 | 亚洲欧美激情图片 | 一级福利片 | 日韩蜜桃视频 |