sicily 1020. Big Integer

原创 2015年11月17日 16:00:56

1020. Big Integer

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB

Description

Long long ago, there was a super computer that could deal with VeryLongIntegers(no VeryLongInteger will be negative). Do you know how this computer stores the VeryLongIntegers? This computer has a set of n positive integers: b1,b2,...,bn, which is called a basis for the computer.

The basis satisfies two properties:
1) 1 < bi <= 1000 (1 <= i <= n),
2) gcd(bi,bj) = 1 (1 <= i,j <= n, i ≠ j).

Let M = b1*b2*...*bn

Given an integer x, which is nonegative and less than M, the ordered n-tuples (x mod b1, x mod b2, ..., x mod bn), which is called the representation of x, will be put into the computer.

Input

The input consists of T test cases. The number of test cases (T) is given in the first line of the input.
Each test case contains three lines.
The first line contains an integer n(<=100).
The second line contains n integers: b1,b2,...,bn, which is the basis of the computer.
The third line contains a single VeryLongInteger x.

Each VeryLongInteger will be 400 or fewer characters in length, and will only contain digits (no VeryLongInteger will be negative).

Output

For each test case, print exactly one line -- the representation of x.
The output format is:(r1,r2,...,rn)

Sample Input

2

3
2 3 5
10

4
2 3 5 7
13


Sample Output

(0,1,0)
(1,1,3,6)

题目分析

同余定理


#include <stdio.h>
#include <memory.h>

int main()
{
  int test;
  scanf("%d", &test);
  while (test--) {
    int num;
    scanf("%d", &num);
    int basis[num];
    for (int c = 0; c < num; ++c)
      scanf("%d", &basis[c]);
    char VeryLongInteger[400];
    scanf("%s", VeryLongInteger);

    int ans[num];
    memset(ans, 0, sizeof(ans));

    int temp;
    for (int c = 0; c < strlen(VeryLongInteger); ++c) {
      temp = VeryLongInteger[c] - '0';
      for (int d = 0; d < num; ++d) {
        ans[d] = (ans[d] * 10 + temp) % basis[d]; 
      }
    }

    for (int c = 0; c < num; ++c)
      if (c == 0)
        printf("(%d", ans[c]);
      else if (c == num - 1)
        printf(",%d)\n", ans[c]);
      else
        printf(",%d", ans[c]);
  }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

1020. Big Integer(高精度运算)

Big Integer Total: 11039 Accepted: 3632 Rating: 2.7/5.0(43 votes) Time Limit: 1sec Mem...
  • stary_yan
  • stary_yan
  • 2015年11月21日 00:22
  • 335

sicily题目分类

sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...
  • u010858667
  • u010858667
  • 2013年09月05日 11:52
  • 2147

poj1811 Prime Test,随机素数测试

Prime Test Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 24514   Ac...
  • yew1eb
  • yew1eb
  • 2014年11月05日 21:56
  • 1941

Sicily 1135 飞越原野

广度优先搜索,三维数组判重 #include #include #include using namespace std; struct Node { int x,y,p; }; ch...
  • Detective_Xin
  • Detective_Xin
  • 2013年11月22日 11:19
  • 1316

[sicily]部分题目分类

*************************程序设计题************************* sicily 1293, uva 100, pc 110101, 3n+1数链问题, 难...
  • luohuang0423
  • luohuang0423
  • 2015年09月24日 11:20
  • 778

中山大学Sicily在线测评系统题目分类

Classified Problems on Online Judge 练习题选自以下在线测评系统 * sicily: http://soj.me, 中山大学Sicily在线测评系统 ...
  • cuhkljt
  • cuhkljt
  • 2013年06月26日 21:39
  • 4825

sicily 简单哈希

sicily 1004. 简单哈希 原题: Description  使用链地址法(又称拉链法)可以解决Hash中的冲突问题。其基本思想是:将具有相同哈希地址的记录链成一个单链表,m个哈希地址就...
  • t6_17
  • t6_17
  • 2016年12月14日 21:26
  • 550

1020. 月饼 (25) -- 做题记录

1020. 月饼 (25) 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。 ...
  • schostel
  • schostel
  • 2016年07月24日 17:14
  • 172

Sicily求A-B(也即求A对B的差集)

题目描述思路介绍:①使用vector存储AB ②使用unique与erase对AB分别进行去重 ③开辟一个标记数组,使用二重循环...
  • wyxwyx469410930
  • wyxwyx469410930
  • 2017年12月22日 00:29
  • 57

sicily 1215 脱离地牢

做Sicily 1215脱离地牢 这一题,一直Restrict function,都快崩溃了。 最后发现是内存泄露,就是new出来的东西没有及时delete导致的。 具体是在广度优...
  • chz429
  • chz429
  • 2014年12月27日 10:25
  • 627
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sicily 1020. Big Integer
举报原因:
原因补充:

(最多只允许输入30个字)