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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

hihocoder-1565-大富翁

發布時間:2023/12/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hihocoder-1565-大富翁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hihocoder-1565-大富翁

#1565 : 大富翁

時間限制:10000ms 單點時限:1000ms 內存限制:256MB

描述

小Hi在玩大富翁游戲。游戲棋盤由一排?N?個格子組成,其中第?i?個格子上有一個正整數?Ai,表示如果玩家當前回合在第?i?個格子,那么下一回合他將移動到第?i+Ai?個格子上(如果?i+Ai>N,則該玩家本局游戲結束)。每局游戲開始前,某些格子上的數字可能發生改變。

當一局游戲開始時,小Hi通過擲骰子決定自己的初始位置。每當小Hi處于一個格子時(包含初始位置的格子),他都有一次機會可以購買房產。小Hi想知道如果這一局他起始位置是?Y,那么本局中他能夠有幾次購買房產的機會。 ?

輸入

第一行一個正整數?N。 ?

第二行?N?個正整數,A1,?A2, ...?AN。

第三行一個正整數?Q,表示有?Q?次詢問。 ?

接下來?Q?行,每行首先有一個正整數?X。

若?X=1,則會再輸入一個正整數?Y,你需要輸出起始位置在第?Y?個格子時本局有幾次購買房產的機會。

若?X=2,則會再輸入兩個正整數?u,v,表示將第?u?個格子上的值?Au?修改為?v。

對于30%的數據,6 ≤?N?≤ 10000, 1 ≤?Ai,?v?≤ 10000, 1 ≤?Q?≤ 10000

對于100%的數據,6 ≤?N?≤ 100000, 1 ≤?Ai,?v?≤ 100000, 1 ≤?Q?≤ 100000, 1 ≤?u?≤?N, 1 ≤?Y?≤ 6

輸出

對于每個?X=1 的詢問輸出一行,包含一個正整數,表示小Hi在這一輪中能夠有幾次購買房產的機會。

樣例輸入
8 1 1 2 1 2 2 2 3 3 1 3 2 6 4 1 6
樣例輸出
3 1

?

使用暴力直接解決。

?

#include <cstdio> #include <iostream> using namespace std; const int MAXN = 100000 + 10; int n, q, A[MAXN], ans[MAXN]; int main(){freopen("in.txt", "r", stdin); int op, x, y; scanf("%d", &n); for(int i=1; i<=n; ++i){scanf("%d", &A[i]); }for(int i=1; i<=6; ++i){ans[i] = -1;}scanf("%d", &q); for(int i=0; i<q; ++i){scanf("%d", &op); if(op == 1){scanf("%d", &x); if(ans[x] == -1){int st = x;ans[x] = 0; while(st <= n){ans[x]++; st += A[st]; } }printf("%d\n", ans[x] ); }else{scanf("%d %d", &x, &y); A[x] = y; for(int i=1; i<=6; ++i){ans[i] = -1; }}}return 0; }

  

轉載于:https://www.cnblogs.com/zhang-yd/p/7440993.html

總結

以上是生活随笔為你收集整理的hihocoder-1565-大富翁的全部內容,希望文章能夠幫你解決所遇到的問題。

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