zoukankan      html  css  js  c++  java
  • HDU5475

    An easy problem

    Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 1697    Accepted Submission(s): 760


    Problem Description

    One day, a useless calculator was being built by Kuros. Let's assume that number X is showed on the screen of calculator. At first, X = 1. This calculator only supports two types of operation.
    1. multiply X with a number.
    2. divide X with a number which was multiplied before.
    After each operation, please output the number X modulo M.
     

    Input

    The first line is an integer T(1T10), indicating the number of test cases.
    For each test case, the first line are two integers Q and M. Q is the number of operations and M is described above. (1Q105,1M109)
    The next Q lines, each line starts with an integer x indicating the type of operation.
    if x is 1, an integer y is given, indicating the number to multiply. (0<y109)
    if x is 2, an integer n is given. The calculator will divide the number which is multiplied in the nth operation. (the nth operation must be a type 1 operation.)

    It's guaranteed that in type 2 operation, there won't be two same n.
     

    Output

    For each test case, the first line, please output "Case #x:" and x is the id of the test cases starting from 1.
    Then Q lines follow, each line please output an answer showed by the calculator.
     

    Sample Input

    1
    10 1000000000
    1 2
    2 1
    1 2
    1 10
    2 3
    2 4
    1 6
    1 7
    1 12
    2 7
     

    Sample Output

    Case #1:
    2
    1
    2
    20
    10
    1
    6
    42
    504
    84
     

    Source

     
    既然说是简单题,那就不用想的太复杂,暴力的做法也能过
     1 //2016.9.12
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 #define N 100005
     6 
     7 using namespace std;
     8 
     9 int nu[N], book[N];
    10 
    11 int main()
    12 {
    13     long long ans;
    14     int T, kase = 0, q, mod, op;
    15     scanf("%d", &T);
    16     while(T--)
    17     {
    18         ans = 1;
    19         memset(book, true, sizeof(book));
    20         printf("Case #%d:
    ", ++kase);
    21         scanf("%d%d", &q, &mod);
    22         for(int i = 1; i <= q; i++)
    23         {
    24             scanf("%d%d", &op, &nu[i]);
    25             if(op == 1)
    26             {
    27                 ans *= nu[i];
    28                 ans %= mod;
    29             }
    30             else 
    31             {
    32                 book[nu[i]] = false;
    33                 book[i] = false;
    34                 ans = 1;
    35                 for(int  j = 1; j < i; j++)
    36                 {
    37                     if(book[j])ans = (ans*nu[j])%mod;
    38                 }
    39             }
    40             printf("%lld
    ", ans);
    41         }
    42     }
    43 
    44     return 0;
    45 }
     
  • 相关阅读:
    常见事务码说明
    常见表说明
    确认工序
    锐捷万兆交换机开启远程登录
    华为交换机相关命令
    ip网络
    深入css过渡transition
    KVM虚拟机两种配置的概念不同之处
    SSH连接服务器时,长时间不操作就会断开的解决方案
    HTTP状态码
  • 原文地址:https://www.cnblogs.com/Penn000/p/5868427.html
Copyright © 2011-2022 走看看