题意:刚开始并没有看懂,耐着性子硬读下去,才勉强弄懂大意,英语也要加强训练啊!
题目是说你有s行c列士兵,然后带着他们去打仗,为了虚张声势,在士兵的中间缺了两个边长为r的洞,且这两个洞四个方向的厚度是一样的,理解可能不大好理解,但是画一下就明了了,题目中也有相关的图,这个应该能yy到,然而重点是要求的问题和这个刚好一反,要求的是给定n个人,问这个洞有多大(问可能会缺少多少人)

思路:设中间两个洞的边长为r,洞的四个方向的厚度为c  那么极易推出(2r+3c)*(r+2c) --2r^2= n ,稍微化简可以得到 6c^2+7cr=n,即c(6c+7r)=n, c是n的约数,那么只要对n进行因式分解,对分解的因数一一枚举,那么就可以求出所有的可能性,没必要把因式分解后然后排序,没有必要,如果外加拉宾—米勒的素数判别,速度会更快!

code:

#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <string>using namespace std;

typedef long long ll;const ll mod=100000007;

int main(){    ll n;    while (~scanf ("%lld",&n)&&n)    {        int f=1;        for (ll i=1;i<(ll)sqrt(1.0*n/6+0.5);i++)    //依次按顺序分解枚举因子        {            ll t=n-6*i*i;            if (t%(7*i)==0)            {                ll ans=t/(7*i)%mod;                ans=2*ans*ans%mod;                printf("Possible Missing Soldiers = %lld\n",ans);                f=0;            }        }        if (f)            printf("No Solution Possible\n");        printf("\n");    }}

uva 11490 ——Just Another Problem相关推荐

  1. Uva 101 the block problem 木块问题(算法竞赛经典入门)STL vector

    Uva 101 the block problem 木块问题 题目大意: 输入n,得到编号为0~n-1的木块,分别摆放在顺序排列编号为0~n-1的位置.现对这些木块进行操作,操作分为四种. 1.mov ...

  2. UVA - 524 Prime Ring Problem

    题目链接: UVA - 524 Prime Ring Problem Description(素数环) A ring is composed of n (even number) circles as ...

  3. 【UVA】11991 Easy Problem from Rujia Liu? (整数v第k次出现在什么位置)

    https://vjudge.net/problem/UVA-11991 题目大意:就是给你一个序列,然后给出k和v,看整数v第k次出现在该序列的什么位置,没有的话就输出0 结构体(略复杂): #in ...

  4. uva 10401 Injured Queen Problem(dp)

    题目链接:10401 - Injured Queen Problem 题目大意:给出一个字符串,要求在n * n(n为字符串的长度)的棋盘上摆放n个受伤的皇后,受伤的皇后只能攻击到同一列和它周围8个格 ...

  5. uva 10026 Shoemaker's Problem(排序)

    题目连接:10026 Shoemaker's Problem 题目大意:有一个鞋匠接了n双要修的鞋子, 修每双鞋需要d天,每推迟一天修将亏损val元,问按什么样的顺序修鞋可以保证损失最少,如果有多种情 ...

  6. uva 11069 A Graph Problem

    递推 题意:看题目中的列子就可以知道 ,当n为5时,可行的子集有{1,3,5},{2,4},{2,5},{1,4} 1.子集中任意两个元素的差x要2<=x<=3. 2.子集要尽可能的长,好 ...

  7. uva 101 The Blocks Problem

    1.     move a onto b在將a搬到b上之前,先將a和b上的積木放回原來的位置(例如:1就放回1的最開始位罝) 2. move a over b在將a搬到b所在的那堆積木之上之前,先將a ...

  8. UVA - 101:The Blocks Problem

    原本以为是一道很简单的模拟题,结果写了一个小时...很长时间不碰算法题,的确手感差很多.不过我觉得随着刷题慢慢多起来应该会好的. 题目的意思也有点含糊,需要自己去猜,大概意思就是槽里有一堆木头,每个槽 ...

  9. uva 524(Prime Ring Problem UVA - 524 )

    dfs练习题,我素数打表的时候j=i了,一直没发现实际上是j=i*i,以后可记住了.还有最后一行不能有空格...昏迷了半天 我的代码(紫书上的算法) #include <bits/stdc++. ...

最新文章

  1. c语言命令行选项处理函数getopt和getopt_long() 函数使用
  2. 用Go语言建立一个简单的区块链part6(2):交易(2)
  3. python省市区三级联动_Django Admin实现三级联动的示例代码(省市区)
  4. zabbix配置微信报警
  5. js中WINDOW对象中的navigator成员对象
  6. ubuntu16.04下ROS操作系统学习笔记(五)gazebo物理仿真环境搭建、加载服务端模型数据减少报错
  7. vb运行环境linux,VB.Net开发环境安装配置
  8. js获取网络时间(axios获取响应头时间)
  9. 如何提升代码的安全性 —— 代码混淆
  10. 未来是否繁花似锦,源自我们当下之努力
  11. spark学习之执行计划explain
  12. STM32F103_study66_The punctual atoms(STM32 Temperature sensor experiment)
  13. HDR:Recovering High Dynamic Range Radiance Maps from Photographs
  14. 什么是应用宝统一链接服务器,腾讯只悄悄地在手Q中整合应用宝,就开始逆天了...
  15. 中国AR智能隐形眼镜市场竞争态势与投资规划分析报告2022-2028年
  16. 深度学习day01-深度学习环境、conda、创建第一张画布
  17. java小学生加减法_Java实现随机出题,10道10以内加减法计算代码实例|chu
  18. 计算机基础——3.3 算法与程序设计语言
  19. 计算机科学大师唐纳德,计算机科学大师唐纳德.克努特指出,杨辉三角
  20. 【Linux】实验报告8 Linux文件系统

热门文章

  1. 你真的了解css像素嘛?
  2. Flexible 弹性盒子模型之CSS align-items 属性
  3. HTTP Developer's Handbook Part V: Security 读书笔记
  4. TMS320F28335——IO控制/定时计操作
  5. js中变量作用域的小理解
  6. 分层设计 --java中的几种包
  7. hdu1247(Hat’s Words)
  8. Android判断界面
  9. mysql怎么制作柱状图_从数据库中取出最近三十天的数据并生成柱状图
  10. uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能