zoukankan      html  css  js  c++  java
  • UVA 11490

    11490 - Just Another Problem

    题目链接

    题意:有S个士兵。排成一个矩阵,矩阵中能够有两个洞,要求两个洞上下左右厚度一样,问能缺少士兵的情况数。

    思路:推推公式,设厚度为a, 正方形为i, 那么(3 a + 2 i) (2 a + i) = S + 2 i i;
    化简一下得到6 i i + 7 a i = S
    因为S非常大,所以去枚举厚度。这样仅仅要枚举到sqrt(S)就够了,复杂度能够接受

    代码:

    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    
    const long long MOD =100000007;
    long long n;
    
    int main() {
    	while (~scanf("%lld", &n) && n) {
    		int flag = 1;
    		for (long long i = 1; i * i * 6 < n; i++) {
    			long long tmp = n - i * i * 6;
    			if (tmp % (7 * i) == 0) {
    				long long ans = tmp / (7 * i) % MOD;
    				printf("Possible Missing Soldiers = %lld
    ", ans * ans * 2 % MOD);
    				flag = 0;
       			}
      		}
      		if (flag) printf("No Solution Possible
    ");
      		printf("
    ");
     	}
    	return 0;
    }


  • 相关阅读:
    python10.31
    python10.29
    python10.28
    python10.27
    python10.25
    python10.24
    python10.23
    四边形不等式与决策单调
    0x57~0x59
    0x55~0x56
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5067841.html
Copyright © 2011-2022 走看看