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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Uva10294 Arif in Dhaka (置换问题)

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Uva10294 Arif in Dhaka (置换问题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼續劉汝佳大白之旅,這次是北京站賽前學學數學問題。

雖然說比賽前臨時抱佛腳通常意義不大,不過表示即使短時間內用不上,但是只要給自己一點比賽前的壓力,確實學起來動力會足一些,即使被平時的各類大物實驗,電工實驗,計算機硬件實驗以及素描忙的夠嗆。

扯回正題,此題需要知道的是置換群的概念,這點在劉汝佳的書中寫的比較詳細,此處不多做贅述。此處多說一句的是第二種手鐲的情況。在下圖中“左圖順時針轉1個位置”和“右圖順時針旋轉5個位置”是相同的,所以在最終結果處需要(ans1+ans2)/2。


代碼:

#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; typedef long long LL; int n, t; //int prime[] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47}; long long pow_num[55]; int main() {while(~scanf("%d%d", &n, &t) && n) {memset(pow_num, 0, sizeof(pow_num));pow_num[0] = 1LL;for(int i = 1; i <= n; i++) {pow_num[i] = pow_num[i - 1] * (LL)t;}LL ans1 = 0LL, ans2 = 0LL;for(int i = 1; i <= n; i++) {ans1 += pow_num[__gcd(i, n)];}if(n % 2 == 1) {ans2 = n * pow_num[n / 2 + 1];} else {ans2 = n / 2 * pow_num[n / 2] + n / 2 * pow_num[(n - 2) / 2 + 2]; }cout<<ans1 / n<<" "<<(ans1 + ans2) / 2 / n<<endl;}return 0; }

轉載于:https://www.cnblogs.com/gaoxiang36999/p/4451502.html

總結

以上是生活随笔為你收集整理的Uva10294 Arif in Dhaka (置换问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

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