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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforses 185 A Plant 思维 规律

發布時間:2024/4/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforses 185 A Plant 思维 规律 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  題目鏈接:?http://codeforces.com/problemset/problem/185/A

  題目描述: 給你一個三角形,每次在上三角形中畫一個下三角形, 在下三角形中畫一個上三角形, 求最終的上三角形總數是多少

  解題思路: 用矩陣快速冪很好求, 矩陣也很好構造, 這里就不寫了, 由于每一層中的上三角形都比上一層多一個, 所以我們只要求出來最下一層再用等差公式就可以了, 第一個最下一層的三角形是1, 然后是2, 4, 8......所以答案就是(1+2^n)*2^n/2

  代碼:?

#include <iostream> #include <cstdio> #include <string> #include <vector> #include <cstring> #include <iterator> #include <cmath> #include <algorithm> #include <stack> #include <deque> #include <map> #define lson l, m, rt<<1 #define rson m+1, r, rt<<1|1 #define mem0(a) memset(a,0,sizeof(a)) #define meminf(a) memset(a,-0x3f,sizeof(a)) #define fi(n) for(i=0;i<n;i++) #define fj(m) for(j=0;j<m;j++) #define sca(x) scanf("%d",&x) #define ssca(x) scanf("%s",x) #define scalld(x) scanf("%I64d",&x) #define print(x) printf("%d\n", x) #define printlld(x) printf("%I64d\n",x) #define de printf("=======\n") #define yes printf("YES\n") #define no printf("NO\n") typedef long long ll; using namespace std;const int mod = 1e9+7;ll q_power( ll num, ll n ) {ll ret = 1;while( n ) {if( n & 1 ) ret = ret * num % mod;n >>= 1;num = num * num % mod;//num *= num % mod; // 兩者有什么區別? }return ret; }int main() {ll n;while( cin >> n ) {if( n == 0 ) {cout << "1" << endl;continue;}ll temp = q_power(2, n);cout << (1+temp)*temp/2%mod << endl;}return 0; } View Code

  思考: 遇到一個小坑坑, num *= num % mod 與 num = num * num % mod 是不一樣的, WA了兩次, 真的蠢, 以后注意, 最近思想上有點兒波動, 自我調整一下

轉載于:https://www.cnblogs.com/FriskyPuppy/p/7427885.html

總結

以上是生活随笔為你收集整理的Codeforses 185 A Plant 思维 规律的全部內容,希望文章能夠幫你解決所遇到的問題。

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