zoukankan      html  css  js  c++  java
  • 算法与数据结构实验题 2.3 泡泡的饭碗

    ★实验任务

    饱了吗终于发现泡泡破解了它的代码并借此白吃白喝。饱了吗当即改变了自 己的幸运儿生成源码,但是,又被机智的泡泡偷瞄到了,机智的泡泡马上意识到 可能要饭碗不保了:

    每当有人参与抽奖,这个人就进入队列。当人数达到 n 的时候开奖一次。 1. 开奖时,将执行 m 次操作,每次操作挑一个不超过 200 的数 d,且保证 d 不超过人数的一半,然后把第 D 个人和第 n-D+1 个人这两个人之间的队伍反转:
    2. 反转前:1,2,...,D-1,D,D+1,..., n-D+1, n-D+2,...n(从左往右编号)
    3. 反转后:1,2,...,D-1,n-D+1,n-D,..., D+1, D, n-D+2...n(这里的编号 是旋转前从左到右的编号) m 次操作完后从队头开始报号,没报到 x 的回到队尾,报到 x 的就是幸运儿 啦;

    机智的泡泡马上又意识到,当 n 和 m 次操作和 x 的值已知的时候,幸运儿仍 然是可以预知到是第几个参与抽奖的人的。 机智的泡泡马上又意识到,自己的饭碗保住了。 但是!机智的泡泡马上意识到一个问题,这个预知结果的代码不好打。 但是!机智的泡泡马上想起了你。 机智的泡泡马上把锅又扔给了你。

    ★数据输入

    输入第一行为三个正整数 n,m,x。 接下来 m 行,第 i 行给出第 i 次操作的 d,如题; 对于 80%的数据,2<=n<=2000,1<=m<=2000; 对于 100%的数据,2<=n<=100000,1<=m<=100000 1<=x<=1000,000,000,1<=d<=min(n/2,200);

    ★数据输出

    输出幸运儿是第几个参加抽奖的人。

    输入示例 输出示例
    5 2 1
    2
    1
    5

    输入示例 输出示例
    5 4 3
    2
    1
    2
    1
    3

    ★思路

    判断所求位置是否被反传(不要每次操作都去实现),奇数次反转相当于反转一次,偶数次反转相当于没有被反转

    坑点就是报数到x,x可能大于数组长度。
    于是有了这段代码

    temp = x%n;  
    if (temp == 0)  
    temp = n;  
    

    ★Code

     
                 
                #include<stdio.h>
    #include<iostream>
    using namespace std; 
    int main()
    {
    
        	int m, n, x, i, d, flag = 0;  
    	    int temp;  
    	    cin >> n >> m >> x;  
    	    temp = x%n;  
    	    if (temp == 0)  
    	        temp = n;  
    	    for (i = 0; i < m; i++)  
    	    {  
    	        cin >> d;  
    	        if ((temp>=d)&&(temp<=n+1-d)) 
    	            flag++;  
    	    }  
    	    if (flag % 2 == 0)  
    	        cout << temp<<endl;  
    	    else  
    	        cout << n - temp + 1<<endl;  
                return 0;
    }
    
            
            
    
  • 相关阅读:
    SQLServer之创建AFETER DELETE触发器
    SQLServer之创建DML AFTER UPDATE触发器
    SQLServer之创建DML AFTER INSERT触发器
    css制作环形进度条
    curl教程2
    windows下更改鼠标滚轮方向
    curl tutorial with examples of usage
    为npm设置代理
    日期类型的input元素设置默认值为当天
    加盐密码哈希:如何正确使用
  • 原文地址:https://www.cnblogs.com/031602523liu/p/7676201.html
Copyright © 2011-2022 走看看