• 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,则会再输入两个正整数 uv,表示将第 u 个格子上的值 Au 修改为 v

    对于30%的数据,6 ≤ N ≤ 10000, 1 ≤ Aiv ≤ 10000, 1 ≤ Q ≤ 10000

    对于100%的数据,6 ≤ N ≤ 100000, 1 ≤ Aiv ≤ 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
    ", ans[x] ); 
    		}else{
    			scanf("%d %d", &x, &y); 
    			A[x] = y; 
    			for(int i=1; i<=6; ++i){
    				ans[i] = -1; 
    			}
    		}
    	}
    	return 0; 
    } 
    

      

  • 相关阅读:
    gost源码分析心得
    go语言net编程,设置TCP连接发出使用源IP
    代理程序gost使用
    squid关闭缓存
    shell中的if比较
    10年以上年化20%以上收益率的基金经理
    股票信息查询
    02.win2003虚拟机安装和dos命令
    01.网络安全和虚拟机
    部署kali渗透环境
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/7440993.html
Copyright © 2020-2023  润新知