1785: 又一道简单题

Submit Page   Summary   Time Limit: 5 Sec     Memory Limit: 128 Mb     Submitted: 602     Solved: 234


Description

输入一个四个数字组成的整数 n,你的任务是数一数有多少种方法,恰好修改一个数字,把它 变成一个完全平方数(不能把首位修改成 0)。比如 n=7844,有两种方法:3844=62^2和 7744=88^2。

Input

输入第一行为整数 T (1<=T<=1000),即测试数据的组数,以后每行包含一个整数 n (1000<=n<=9999)。

Output

对于每组数据,输出恰好修改一个数字,把 n 变成完全平方数的方案数。

Sample Input

  1. 2
  2. 7844
  3. 9121

Sample Output

  1. Case 1: 2
  2. Case 2: 0

Hint

Source

湖南省第十一届大学生计算机程序设计竞赛

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstdio>
  4. #include<cstring>
  5. #include<set>
  6. #include<map>
  7. #include<sstream>
  8. #include<queue>
  9. #include<cmath>
  10. #include<list>
  11. #include<vector>
  12. #include<string>
  13. using namespace std;
  14. #define long long ll
  15. const double PI = acos(-1.0);
  16. const double eps = 1e-;
  17. const int inf = 0x3f3f3f3f;
  18. const int N = ;
  19. int n, m, tot;
  20. int a[];
  21. int r[], c[];
  22. int x, y, pr, pc, k = ;
  23. int ok(int x)
  24. {
  25. int tp=sqrt(x*1.0);
  26. return tp*tp==x;
  27. }
  28. int change(string s)
  29. {
  30. int sum = ;
  31. for(int i=; i<s.size(); i++)
  32. {
  33. sum = sum * + s[i] - '';
  34. }
  35. return sum;
  36. }
  37. int sq[];
  38. void init()
  39. {
  40. int k = ;
  41. for(int i=; i<; i++)
  42. sq[k++] = i * i;
  43. }
  44. int main()
  45. {
  46.  
  47. int t, k = ;
  48. cin >> t;
  49. while(t--)
  50. {
  51. string s, s1, s2, s3, s4;
  52. int cnt = ;
  53. cin>>s;
  54. int a,b,c,d;
  55. s1 = s;s2 = s;s3 = s;s4 = s; //将s分别复制给中间变量
  56. a = s1[]-''; b = s2[]-''; c = s3[]-''; d = s4[]-''; //记录原4位数各个数位数值
  57. //printf("%d %d %d %d\n",a,b,c,d);
  58. for(int i=; i<= ; i++) //第一位改变不能和原来的相等&&第一位不能为0
  59. {
  60. if(i==a) continue; //注意!不能把i!=a写在for循环里面 一遇到a会直接跳出循环而漏掉情况!!!
  61. s1[] = i + ''; //改变第一位
  62. //cout<<s1[0]<<endl;
  63. if(ok(change(s1))) { //将字符串变为数值再判断是否为完全平方数
  64. //printf("%d\n",change(s1));
  65. cnt++;
  66. }
  67. }
  68. for(int i=; i<= ; i++)
  69. {
  70. if(i==b) continue;
  71. s2[] = i + '';
  72. //cout<<s2[1] <<endl;
  73. if(ok(change(s2))){
  74. //printf("%d\n",change(s2));
  75. cnt++;
  76. }
  77. }
  78. for(int i=; i<= ; i++)
  79. {
  80. if(i==c) continue;
  81. s3[] = i + '';
  82. //cout<<s3[2]<<endl;
  83. if(ok(change(s3))) {
  84. //printf("%d\n",change(s3));
  85. cnt++;
  86. }
  87. }
  88. for(int i=; i<= ; i++)
  89. {
  90. if(i==d) continue;
  91. s4[] = i + '';
  92. //cout<<s4[3]<<endl;
  93. if(ok(change(s4))) {
  94. //printf("%d\n",change(s4));
  95. cnt++;
  96. }
  97. }
  98. printf("Case %d: ",k++);
  99. cout<<cnt<<endl;
  100. }
  101. return ;
  102. }

CSU 1785: 又一道简单题的更多相关文章

  1. 又一道简单题&&Ladygod(两道思维水题)

    Ladygod Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  2. 中南大学2018年ACM暑期集训前期训练题集(入门题) X: 又一道简单题

    简直智障,上一题V题,样例输出里面的“Case:”不要输出,到了这题又是要输出的了 #include<iostream> using namespace std; int num[1000 ...

  3. P3928 SAC E#1 - 一道简单题 Sequence2

    题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强.小强便打算 ...

  4. UVa 11991 一道简单题

    https://vjudge.net/problem/UVA-11991 题意:给出一个包含n个整数的数组,你需要回答若干询问.每次询问两个整数k和v,输出从左到右第k个v的下标. 思路: 把每个数字 ...

  5. 【Luogu】 P3928 SAC E#1 - 一道简单题 Sequence2

    [题目]洛谷10月月赛R1 提高组 [算法]递推DP+树状数组 [题解]列出DP递推方程,然后用树状数组维护前后缀和. #include<cstdio> #include<cstri ...

  6. 洛谷P3928 SAC E#1 - 一道简单题 Sequence2

    提交地址 题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强. ...

  7. Go: LeetCode简单题,简单做(sort.Search)

    前言 正值端午佳节,LeetCode也很懂.这两天都是简单题,早点做完去包粽子. 故事从一道简单题说起 第一个错误的版本 简单题 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最 ...

  8. QDUOJ 一道简单的数据结构题 栈的使用(括号配对)

    一道简单的数据结构题 发布时间: 2017年6月3日 18:46   最后更新: 2017年6月3日 18:51   时间限制: 1000ms   内存限制: 128M 描述 如果插入“+”和“1”到 ...

  9. 面试一个百度T7程序员,一道简单的题没答上来!网友却都在吐槽面试官!

    程序员面试时都考些什么? 一个面试官得意洋洋地说自己面了一个百度T7,出了一道coding题,结果对方连最长上升子序列都写不出来.   楼主本想嘲弄一下百度T7的代码水平低,没想到网友们炸开了锅,纷纷 ...

随机推荐

  1. HDU:4417-Super Mario(离线线段树)

    Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...

  2. WPF实现QQ群文件列表动画(二)

    上篇(WPF实现QQ群文件列表动画(一))介绍了WPF实现QQ群文件列表动画的大致思路,结合我之前讲过的WPF里ItemsControl的分组实现,实现起来问题不大,以下是效果图: 其实就是个List ...

  3. TCP/IP网络编程之基于TCP的服务端/客户端(一)

    理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字.因为TCP套接字是面向连接的,因此又称为基于流(stream)的套接字.TCP是Transmissi ...

  4. Less Css 教程

    http://www.w3cplus.com/css/less,这个东西太吊了!

  5. leetcode 【 Add Two Numbers 】 python 实现

    题目: You are given two linked lists representing two non-negative numbers. The digits are stored in r ...

  6. IOS开发学习笔记018- 一般控件的使用

    1.移动 2.动画 3.缩放 3.旋转 4.简化代码 5.总结 UIButton 的两种状态 normal highlighted  1.移动 OC语法规定:不允许直接修改某个对象中结构体属性的成员. ...

  7. python小脚本(18-11.10)-修改excle后批量生成,作用:导入数据时,系统做了不能导入重复数据时的限制时使用 -本来是小白,大神勿扰

    from testcase.test_mokuai.operation_excle import OperationExcleimport shutil class test_daoru(): #一个 ...

  8. Oracle 学习----:创建表(主键自增)

    一.创建表 create table testTable ( Id numbere, name varchar2(100), age number, createTime date, primary ...

  9. easyui在datagrid只想选择一条

    <table class="" id="jgrid" data-options="fitColumns:true,rownumbers: tru ...

  10. chrome浏览器无法安装非应用商店插件的解决办法

    不久前,安装了一个非chrome应用商店的第三方应用,今天突然发现无法使用,打开chrome的扩展程序后,发现该插件以及被禁用,在网上查找了解决方法,设置“开发者模式”,修改了chrome的参数,仍然 ...