题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1104

题目大意:输入一个字符串(数字与大写字母组成),输出n,n满足此字符串为n进制时,其n进位制数能被n-1整除(n不存在时输出"No solution"(不包括双引号))。

题目好多坑点,我也是WA了好几次才A的。算法是暴力的。

1,刚开始,我怎么都想不清楚,答案就是2啊,任何数都可以被1整除啊,其实,不是这样的,比如说,123就不是2进制数,所以说,这里要找到字符串中最大的字符,从maxnum+1进制开始找。

2,test 6,就是在%(k-1),可能除以了0,就是说你要找最大的maxnum = 1;这时就不对了,应该将maxnum和2比较一下。

#include <bits/stdc++.h>
using namespace std; #define maxn 1000100
char str[maxn];
long long num[maxn];
int len; int getnum(char a)
{
if(a>=''&&a<='')
return (a-'');
else return (a-'A'+);
} bool judge(int k)
{ //long long base = 1;
long long sum = ;
/*
for(int i=len-1; i>=0; i--)
{
sum +=num[i]*base;
base*=k;
}
if(sum%(k-1)==0)
return true;
return false;
*/ for(int i=len-;i>=;i--)
{
sum +=num[i];
sum = sum%(k-);
sum*=k;
}
return sum==; } int main()
{
scanf("%s",str);
len = strlen(str);
int maxnum = ;
for(int i = ; i<len; i++)
{
num[i] = getnum(str[i]);
if(maxnum<num[i])
maxnum = num[i];
}
int k;
bool flag = false; if(maxnum<) k = ;
else k = maxnum+; for(; k<=; k++)
{
if(judge(k))
{
flag = true;
break;
}
}
if(flag)
printf("%d\n",k);
else puts("No solution.");
return ;
}

ural 1104,暴力取模的更多相关文章

  1. 【BZOJ4944】【NOI2017】泳池 概率DP 常系数线性递推 特征多项式 多项式取模

    题目大意 有一个\(1001\times n\)的的网格,每个格子有\(q\)的概率是安全的,\(1-q\)的概率是危险的. 定义一个矩形是合法的当且仅当: 这个矩形中每个格子都是安全的 必须紧贴网格 ...

  2. hdu 4291 A Short problem(矩阵+取模循环节)

    A Short problem                                                          Time Limit: 2000/1000 MS (J ...

  3. hdu-5475 An easy problem---线段树+取模

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5475 题目大意: 给X赋初值1,然后给Q个操作,每个操作对应一个整数M: 如果操作是1则将X乘以对应 ...

  4. POJ 1152 An Easy Problem! (取模运算性质)

    题目链接:POJ 1152 An Easy Problem! 题意:求一个N进制的数R.保证R能被(N-1)整除时最小的N. 第一反应是暴力.N的大小0到62.发现当中将N进制话成10进制时,数据会溢 ...

  5. PTA 阶乘之和取模

    阶乘之和取模 (25 分) 输入正整数n, 计算S = 1!+2!+...+n!的末6位(不含前导0). 这里1<=n<=10​9​​. 输入样例: 例如输入: 20 输出样例: 输出: ...

  6. 组合数取模及Lucas定理

    引入: 组合数C(m,n)表示在m个不同的元素中取出n个元素(不要求有序),产生的方案数.定义式:C(m,n)=m!/(n!*(m-n)!)(并不会使用LaTex QAQ). 根据题目中对组合数的需要 ...

  7. Gym100947E || codeforces 559c 组合数取模

    E - Qwerty78 Trip Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u S ...

  8. C语言fmod()函数:对浮点数取模(求余)

    头文件:#include <math.h> fmod() 用来对浮点数进行取模(求余),其原型为:    double fmod (double x); 设返回值为 ret,那么 x = ...

  9. 除法取模练习(51nod 1119 & 1013 )

    题目:1119 机器人走方格 V2 思路:求C(m+n-2,n-1) % 10^9 +7       (2<=m,n<= 1000000) 在求组合数时,一般都通过双重for循环c[i][ ...

随机推荐

  1. PostgreSQL Loadbalance Analysis CPU

    Before we can even begin to decide on a processor count, we need a baseline. With a working PostgreS ...

  2. eclipse jsp 加载服务器tomcat

    1.window->Preferences

  3. 转:Beautiful Soup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...

  4. nyist 626 intersection set

    http://acm.nyist.net/JudgeOnline/problem.php?pid=626 intersection set 时间限制:1000 ms  |  内存限制:65535 KB ...

  5. [转]java代码注释规范

    代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率.也是程序代码可维护性的重要环节之一.所以我们不是为写注释而写注释.下面说一下我们在诉求网二期开发中使用的代码注释规范 ...

  6. .NET: WPF Template

    Data Template: 要做一个listBox,里面有车子的简单信息,点了里面的item后就会显示详细信息. car class: using System; using System.Coll ...

  7. js正则表达式进行格式校验

    今天做了个js正则表达式的练习,利用正则表达式进行注册信息格式验证,注册信息界面如下: 格式要求: 1.学号项不能为空,必须为纯数字,不能与数据库中的重复,正则表达式/^\d+$/g: 2.姓名项不能 ...

  8. android xutils

    http://blog.csdn.net/rishengcsdn/article/details/47279851/

  9. android中在代码中设置margin属性

    1,不多说,小知识点,直接上代码 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(15, 15);// 创 ...

  10. css 标签 清除浮动

    .clearfloat:after{content: "";clear:both;display: block;}