UVA - 10825 Anagram and Multiplication
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34594
有一个m位n进制的数,它的特性是这个数依次乘以2,3.......m,最后得到的数仍然为这个数的某个排列,例如:
有一个6位十进制数:142857
2 x 142,857 = 285,714
3 x 142,857 = 428,571
4 x 142,857 = 571,428
5 x 142,857 = 714,285
6 x 142,857 = 857,142
那么输入6 10就应该有输出142857(假定这样的数有且仅有一个),如果没有,输出not find
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; int m,n,a[],b[],p[],aa[],ans[]; bool ak()
{
int c[];
for(int i=;i<m;i++) c[i]=b[i]=a[p[i]]; //生成待检测的数
for(int k=;k<=m;k++)
{
for(int i=;i<m;i++)
{
c[i+]+=(c[i]+b[i])/n; //不直接乘以k是因为每次c[i],b[i]才不方便初始到原有状 态
c[i]=(c[i]+b[i])%n;
}
for(int i=;i<m;i++) aa[i]=c[i];
sort(aa,aa+m);sort(ans,ans+m); //检验是否是原来的数的某个排列
for(int i=;i<m;i++)
if(aa[i]!=ans[i]) return ;
}
return ;
} bool dfs(int cur)
{
if(cur==m) return ak();
for(int i=cur;i<m;i++)
{
swap(p[cur],p[i]);
if(dfs(cur+)) return ;
swap(p[cur],p[i]);
}
return ;
} bool check(int x)
{
int t=;
for(int i=;i<m;i++)
{
t=(t+x)%n;
a[i]=t;
p[i]=i;
ans[i]=t;
}
return dfs();
} int main()
{
while(scanf("%d%d",&m,&n)!=EOF&&m)
{
int flag=;
for(int i=;i<n;i++)
{
if(check(i))
{
flag=;
break;
}
}
if(!flag)
printf("Not found.\n");
else
{
printf("%d",b[m-]);
for(int i=m-;i>=;i--)
printf(" %d",b[i]);
puts("");
}
}
return ;
}
UVA - 10825 Anagram and Multiplication的更多相关文章
- uva 10825 - Anagram and Multiplication(暴力)
题目链接:uva 10825 - Anagram and Multiplication 题目大意:给出m和n,要求找一个m位的n进制数,要求说该数乘以2~m中的随意一个数的结果是原先数各个位上数值的一 ...
- UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
意甲冠军 由于矩阵乘法计算链表达的数量,需要的计算 后的电流等于行的矩阵的矩阵的列数 他们乘足够的人才 非法输出error 输入是严格合法的 即使仅仅有两个相乘也会用括号括起来 并且括号中 ...
- UVA——442 Matrix Chain Multiplication
442 Matrix Chain MultiplicationSuppose you have to evaluate an expression like A*B*C*D*E where A,B,C ...
- stack UVA 442 Matrix Chain Multiplication
题目传送门 题意:给出每个矩阵的行列,计算矩阵的表达式,如果错误输出error,否则输出答案 分析:表达式求值,stack 容器的应用:矩阵的表达式求值A 矩阵是a * b,B 矩阵是b * c,则A ...
- UVA 195 Anagram
题意:求输入字符串的所有组合,按字典序输出! 解法:使用枚举(枚举前先找出最字符串的最小字典序)枚举时加上枚举生成条件! #include <iostream> #include < ...
- UVa 442 Matrix Chain Multiplication(栈的应用)
题目链接: https://cn.vjudge.net/problem/UVA-442 /* 问题 输入有括号表示优先级的矩阵链乘式子,计算该式进行的乘法次数之和 解题思路 栈的应用,直接忽视左括号, ...
- UVA - 442 Matrix Chain Multiplication(栈模拟水题+专治自闭)
题目: 给出一串表示矩阵相乘的字符串,问这字符串中的矩阵相乘中所有元素相乘的次数. 思路: 遍历字符串遇到字母将其表示的矩阵压入栈中,遇到‘)’就将栈中的两个矩阵弹出来,然后计算这两个矩阵的元素相乘的 ...
- 例题6-3 Matrix Chain Multiplication ,Uva 442
这个题思路没有任何问题,但还是做了近三个小时,其中2个多小时调试 得到的经验有以下几点: 一定学会调试,掌握输出中间量的技巧,加强gdb调试的学习 有时候代码不对,得到的结果却是对的(之后总结以下常见 ...
- UVA 442 二十 Matrix Chain Multiplication
Matrix Chain Multiplication Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %l ...
随机推荐
- vue 基础知识 随笔
window.localStorage.gettItem("someItem"||[])//如果localStorage中的someItem不存在就返回一个空数组 window.l ...
- uva10655
Given the value of a+b and ab you will have to find the value of a n + b n Input The input file cont ...
- mybatis编写mapper操作
mybatis编写mapper resultType和resultMap resultType可以直接指定返回类型,例如自定义的bean <!--通过账号查询用户:一个参数用parameter ...
- 微信小程序去除button边框
button::after{ border: none; } 去button的背景
- linux Java环境变了配置
1. sudo /etc/profile 2.安装截图配置 输入javac 进行验证
- jsonp 监控简陋代码
url: window.location.href Agent: navigator.userAgent var tkInfo = { VisitUrl: window.location.href, ...
- C#中接受一个非字符串的输入
接受来自用户的值 System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中. 例如: int num; num = Conve ...
- MySQL的两种存储引擎storage engine特点和对比
MyISAM 优点:快速读取数据, 占用空间小 缺点:不支持事务,外键 (表级别锁) InnoDB 优点:支持事务,外键; 高性能(CPU效率高) 缺点: 慢,占空间 (行级别锁)
- Json-->Newton.Json.dll的使用方法
Newton.Json.dll for .NET2.0 实体1 public class Student { public string ID { get; set; } ...
- 学习RFT之:TestObject.find方法的了解与使用
第一部分:了解TestObject.find 一.TestObject.find方法的作用 1.测试过程中动态的找到测试对象(控件.标签等),使我们的测试用例不再依赖RFT自带的对象地图(Object ...