• Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) C


    地址:http://codeforces.com/contest/768/problem/C

    题目:

    C. Jon Snow and his Favourite Number
    time limit per test
    4 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Jon Snow now has to fight with White Walkers. He has n rangers, each of which has his own strength. Also Jon Snow has his favourite number x. Each ranger can fight with a white walker only if the strength of the white walker equals his strength. He however thinks that his rangers are weak and need to improve. Jon now thinks that if he takes the bitwise XOR of strengths of some of rangers with his favourite number x, he might get soldiers of high strength. So, he decided to do the following operation k times:

    1. Arrange all the rangers in a straight line in the order of increasing strengths.
    2. Take the bitwise XOR (is written as ) of the strength of each alternate ranger with x and update it's strength.
    Suppose, Jon has 5 rangers with strengths [9, 7, 11, 15, 5] and he performs the operation 1 time with x = 2. He first arranges them in the order of their strengths, [5, 7, 9, 11, 15]. Then he does the following:
    1. The strength of first ranger is updated to , i.e. 7.
    2. The strength of second ranger remains the same, i.e. 7.
    3. The strength of third ranger is updated to , i.e. 11.
    4. The strength of fourth ranger remains the same, i.e. 11.
    5. The strength of fifth ranger is updated to , i.e. 13.
    The new strengths of the 5 rangers are [7, 7, 11, 11, 13]

    Now, Jon wants to know the maximum and minimum strength of the rangers after performing the above operations k times. He wants your help for this task. Can you help him?

    Input

    First line consists of three integers nkx (1 ≤ n ≤ 105, 0 ≤ k ≤ 105, 0 ≤ x ≤ 103) — number of rangers Jon has, the number of times Jon will carry out the operation and Jon's favourite number respectively.

    Second line consists of n integers representing the strengths of the rangers a1, a2, ..., an (0 ≤ ai ≤ 103).

    Output

    Output two integers, the maximum and the minimum strength of the rangers after performing the operation k times.

    Examples
    input
    5 1 2
    9 7 11 15 5
    output
    13 7
    input
    2 100000 569
    605 986
    output
    986 605

     思路:因为每个数和异或后的数都很小,小于1024。所以可以用计数排序的思想来做。O(k*1024)。

      这题找循环节也可以做。

      

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 #define MP make_pair
     6 #define PB push_back
     7 typedef long long LL;
     8 typedef pair<int,int> PII;
     9 const double eps=1e-8;
    10 const double pi=acos(-1.0);
    11 const int K=1e6+7;
    12 const int mod=1e9+7;
    13 
    14 int n,k,x,sum[1050],tmp[1050];
    15 
    16 int main(void)
    17 {
    18     cin>>n>>k>>x;
    19     for(int i=0,y;i<n;i++)
    20         scanf("%d",&y),sum[y]++;
    21     for(int i=1;i<=k;i++)
    22     {
    23         for(int j=0,t=0;j<1024;t+=sum[j],j++)
    24         if(t&1)
    25         {
    26             tmp[j]+=(sum[j]+1)/2;
    27             tmp[j^x]+=sum[j]/2;
    28         }
    29         else
    30         {
    31             tmp[j^x]+=(sum[j]+1)/2;
    32             tmp[j]+=sum[j]/2;
    33         }
    34         memcpy(sum,tmp,sizeof(tmp));
    35         memset(tmp,0,sizeof(tmp));
    36     }
    37     for(int i=1024,ff=1;i>=0&&ff;i--)
    38         if(sum[i])  printf("%d ",i),ff=0;
    39     for(int i=0,ff=1;i<=1024&&ff;i++)
    40         if(sum[i])  printf("%d
    ",i),ff=0;
    41     return 0;
    42 }

     

  • 相关阅读:
    关于表单自动提交的问题及解决方式
    转载:JAVA实现数据库数据导入/导出到Excel(POI)
    关于使用pageoffice插件实现导出数据到excel文档中
    关于导入数据到Excel中对数据库进行去重以及对导入的Excel文件进行去重
    转载:POI操作Excel常用方法总结(2003的excel)
    spring+struts+mybatis中关于导出Excel数据
    关于idea部署项目为什么抛出####:war: Server is not connected. Deploy is not available的错误?
    POI读取所有行数和列数的数据方法
    spring+struts+mybatis中关于报错org.hibernate.exception.GenericJDBCException: Connection is read-only. Queries leading to data modification are not allowed 的产生原因及解决方案
    003---设计首页index页面
  • 原文地址:https://www.cnblogs.com/weeping/p/6426156.html
Copyright © 2020-2023  润新知