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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

「模拟赛20180307」三元组 exclaim 枚举+树状数组

發布時間:2025/7/25 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 「模拟赛20180307」三元组 exclaim 枚举+树状数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

給定 \(n,k\) ,求有多少個三元組 \((a,b,c)\) 滿足 \(1≤a≤b≤c≤n\)\(a + b^2 ≡ c^3\ (mod\ k)\)

輸入

多組數據,第一行數據組數\(T\)
每組數據兩個整數,\(n\)\(k\)

輸出

\(T\)行,每行一個整數,表示滿足條件的三元組的個數。

樣例

樣例輸入

1 10 7

樣例輸出

27 //為什么老被和諧啊

數據范圍

\(1≤n,k≤10^5\)
\(T≤400\)
時間限制\(4s\)

題解

與其他學校互測,然后做題感覺很不友好……
這道題數據很有特點(哪里很有特點了),\(10^5\)顯然是一個象征性的數字,它意味著\(O(n\ log\ n)\)是可以過的(這么大的\(T\)被無視了啊)。
那么很自然的想到,這個式子并沒有什么規律(我也很無奈啊),我們可以考慮枚舉\(a,b,c\)中的\(1\)個。
但是我們選擇哪一個比較好呢?容易想到,應該是\(c\),它的次數最高,不易計算。

接下來考慮一個簡化的問題,如果不取余\(k\),該怎么辦?
對于一個數\(b\),由于\(1≤a≤b\),顯然\(c^3\)只有在\([b^2+1,b^2+b]\)范圍內才有解,而且是唯一解。
所以每一個\(b\)可以為在\([b^2+1,b^2+b]\)\(c^3\)提供一個解,這不就是區間增加一個值嗎?樹狀數組即可做到。

再考慮取余\(k\)時,發現情況如出一轍,一樣的做就可以了。唯一一個問題就是,\([b^2+1,b^2+b]\)可能長度超過了\(k\)
這時能發現長度超過\(k\)后完全覆蓋了所有區域,任何一個\(c\)都可以使用這個\(b\),我們只需要一個計數器\(count\),每次增加\(\left \lfloor\frac{b}{k}\right \rfloor\)

現在,這道題的解法就呼之欲出了。我們從小到大枚舉\(c\),先在樹狀數組\((tree)\)\([c^2+1,c^2+c]\)的區間加上\(1\),并更新\(count\),答案就等于\(tree[c^3\%k]+count\)。時間復雜度為\(O(Tn\ log\ n)\)(再說一次請無視\(T\)的大小)

\(Code:\)

#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define N 100005 #define ll long long int T, n, mod; ll ans, now, t[N]; void update(int x, int v) {for (int i = x; i <= mod; i += i & -i)t[i] += v; } ll getsum(int x) {ll ans = 0;for (int i = x; i; i -= i & -i)ans += t[i];return ans; } int main() {freopen("exclaim.in", "r", stdin);freopen("exclaim.out", "w", stdout);scanf("%d", &T);for (int cas = 1; cas <= T; cas++){scanf("%d%d", &n, &mod);ans = now = 0;memset(t, 0, sizeof(t));for (int i = 1; i <= n; i++){int l =(1ll * i * i + 1)% mod + 1, r =(1ll * i * i + i)% mod + 1;if (l <= r)update(l, 1), update(r + 1, -1);elseupdate(1, 1), update(r + 1, -1), update(l, 1);int c = 1ll * i * i % mod * i % mod;now +=(i - 1)/ mod;ans += getsum(c + 1) + now;}printf("Case %d: ", cas);cout << ans;putchar(10);} }

最后的吐槽:\(exclaim\)并不是三元組的意思,是驚叫的意思……至于為什么,我也不知道……

轉載于:https://www.cnblogs.com/ModestStarlight/p/8528555.html

總結

以上是生活随笔為你收集整理的「模拟赛20180307」三元组 exclaim 枚举+树状数组的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 激情黄色小视频 | 中国老妇性视频 | 日啪| 麻豆成人av | 四虎网站 | 日韩高清av | 波多野结衣一区二区三区高清av | 中文字幕av在线免费观看 | 欧美综合成人 | 欧美成人综合一区 | 亚洲春色在线 | av电影一区二区三区 | 欧美a√ | 午夜视频在线免费观看 | 亚洲av日韩精品久久久久久久 | 蜜桃tv在线观看 | 久久综合日本 | 亚洲av成人精品毛片 | 午夜视频在线免费播放 | 日韩有码电影 | 亚洲人免费视频 | 国产99页 | 逼特逼视频在线观看 | 欧美xxxx黑人又粗又长密月 | 亚洲成人中文字幕 | 黄色av网站网址 | 天堂国产一区二区三区 | 欧美成人aaa片一区国产精品 | 成人黄色小视频 | 91av成人| 亚洲中文一区二区 | 国产真人做爰视频免费 | www.黄色片.com| 欧美三级免费 | www国产精品视频 | 无码粉嫩虎白一线天在线观看 | 15p亚洲 | 日本韩国欧美在线 | 黑人vs亚洲人在线播放 | 成人在线超碰 | 一级片手机在线观看 | 国产久在线 | 色一情一交一乱一区二区三区 | 丁香五香天堂 | 欧美粗暴jizz性欧美20 | 青草青青视频 | 免费黄色小视频在线观看 | 影音先锋在线视频观看 | 国产精品视频久久久 | 99精品国自产在线 | 欧美午夜精品一区二区三区电影 | 1024毛片| 天堂网免费视频 | 成年人在线观看视频 | 九九久久视频 | 国产美女作爱全过程免费视频 | 亚洲国产网站 | 99自拍| 日韩伦理一区 | 午夜性激情| 久久嫩草 | 亚洲 欧美 国产 另类 | 99热在线观看免费 | 国产欧美一区二区三区另类精品 | 97欧美视频 | 欧美第一页浮力影院 | 久久国产精品一区二区三区 | 国产一级视频在线播放 | 91在线视频观看 | 国产精彩视频 | 在线免费观看污视频 | 国产一区二区三区乱码 | 在线观看日韩欧美 | 亚洲成人偷拍 | 亚洲欧美日韩国产一区二区三区 | 日韩精品一区二区在线观看 | 国产精品美女久久久网av | 特级西西人体444www | 亚洲精品女人久久久 | 最新的av网站 | 欧美韩一区二区 | 夜夜嗨av禁果av粉嫩av懂色av | 亚洲人成电影一区二区在线 | 国产又爽又色 | 久久影院精品 | 国产成人一区二区三区电影 | 国产初高中真实精品视频 | 色婷婷免费 | 日韩在线色 | 色综合五月婷婷 | 黄色美女视频网站 | 欧美精品久久久久久久 | 都市激情av | 国产一区二区三区视频 | 成人久久网站 | 日韩在线播放一区二区 | 日本理论片午伦夜理片在线观看 | 玖玖爱在线精品视频 | 久久99久久98精品免观看软件 |