zoukankan      html  css  js  c++  java
  • UVA679 小球下落 Dropping Balls TJ

    题目链接

    思路

    模拟,但是很明显 (TLE) ,一个数据都过不了。
    我们发现这个小球掉落的次数有规律,而且跟奇偶有关。
    图片1
    (1) 次到 (1) 节点向左,第 (2) 次向右,第 (3) 次向左……
    (1) 次到 (3) 节点向左,第 (2) 次向右,第 (3) 次向左……

    那么我们开始找规律,初始为 (i)
    到达 (1) 节点,很显然,如果 (i) 是奇数,那么向左。
    如果向左,那么怎么算出来 (i) 是第几次到达 (3) 节点的呢?
    最终发现,(i) 是第 ((i + 1) / 2) 次到达该节点。以此类推,如果 ((i + 1) imes 2) 是奇数还需要向左。
    如果是偶数,以此类推。不过是第 (i / 2) 次到达下一个节点。

    代码

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int MAXN = 20;
    int d ,i ,n;
    int main () {
    	scanf ("%d",&n);
    	for (int q = 1;q <= n;++ q) {
    		scanf ("%d%d",&d ,&i);
    		int k = 1;
    		for (int q = 0;d --;++ q) {
    			if (i & 1) {
    				k <<= 1; i = (i + 1) >> 1;
    			}
    			else {
    				k = k << 1 | 1; i >>= 1;
    			}
    		}
    		printf ("%d
    ",k / 2);
    	}
    	return 0;
    }
    
    
    cb
  • 相关阅读:
    SVN版本控制器的使用说明(详细过程)
    tomcat服务器的搭建
    git以及gitHub的使用说明书
    gulp的简单使用
    SASS的应用
    springmvc常用注解
    js创建对象的方法
    SVG入门
    http状态码全解
    Ajax参数详解
  • 原文地址:https://www.cnblogs.com/tuscjaf/p/13904153.html
Copyright © 2011-2022 走看看