zoukankan      html  css  js  c++  java
  • 2017 7.25多校训练第一场补题

     一题签到 -1 和不减的位数相同,故可简化

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 int main(){
     5     int n;
     6     int k=1;
     7     while(cin>>n){
     8         ll ans=n*log(2)/log(10);
     9         printf("Case #%d: %lld
    ",k++,ans);
    10     }
    11 }
    View Code

    6040 解题关键:nth_element的使用,注意将区间可以缩小,以及int和unsigned之间直接转化会出错。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 unsigned rating[10000009];
     5 unsigned ans[188];
     6 struct node{
     7     int id;
     8     int ra;
     9 }arr[199];
    10 bool cmp(node &a,node &b){
    11     return a.ra>b.ra;
    12 }
    13 unsigned x,y,z;
    14 unsigned rng61(){
    15       unsigned t;
    16       x ^= x << 16;
    17       x ^= x >> 5;
    18       x ^= x << 1;
    19       t = x;
    20       x = y;
    21       y = z;
    22       z = t ^ x ^ y;
    23       return z;
    24 }
    25 int main(){
    26     int n,m;
    27     unsigned a,b,c;
    28     int k=1;
    29     while(scanf("%d%d%u%u%u",&n,&m,&a,&b,&c)!=EOF){
    30         x=a,y=b,z=c;
    31         for(int i=0;i<m;i++)     {cin>>arr[i].ra;arr[i].id=i;} 
    32         for(int i=0;i<n;i++)    rating[i]=rng61();
    33         sort(arr,arr+m,cmp);
    34         int temp=n;
    35         for(int i=0;i<m;i++){
    36             nth_element(rating,rating+arr[i].ra,rating+temp);
    37             temp=arr[i].ra;
    38             ans[arr[i].id]=rating[temp];
    39         }
    40         printf("Case #%d: ",k++);
    41         for(int i=0;i<m;i++){
    42             printf("%u%c",ans[i],i==m-1?'
    ':' ');
    43         }
    44     }
    45     return 0;
    46 }
    View Code

    弱渣待补。

    另一签到:1010 找规律

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 int main(){
     5     ll n,k,t;
     6     int tt=1;
     7     while(cin>>n>>k){
     8         if(n==2){
     9             ll ans;
    10              t=k%n;
    11             if(t==0) ans=2;
    12             else ans=1;
    13             printf("Case #%d: %lld
    ",tt++,ans);
    14             continue;
    15         }
    16         
    17         ll t1=(k-n)%(n-1),t2=(k-n)/(n-1);
    18         ll ans;
    19         if(k<=n) ans=k;
    20         else{
    21             if(t2%2==0&&t1==0){
    22                 ans=n;
    23             }
    24             else if(t2%2==1&&t1==0){
    25                 ans=n-1;
    26             }
    27             else{
    28                 ans=t1;
    29             }
    30         }
    31         printf("Case #%d: %lld
    ",tt++,ans);
    32     }
    33 }
    View Code
  • 相关阅读:
    【ZJOI 2008】 生日聚会
    BZOJ2135 刷题计划(贪心+二分)
    BZOJ2124 等差子序列(树状数组+哈希)
    BZOJ2282 SDOI2011消防/NOIP2007树网的核(二分答案+树形dp)
    BZOJ1304 CQOI2009叶子的染色(树形dp)
    BZOJ1283 序列(费用流)
    BZOJ1266 AHOI2006上学路线(最短路+最小割)
    BZOJ1041 HAOI2008圆上的整点(数论)
    BZOJ3505 CQOI2014数三角形(组合数学)
    BZOJ5206 JSOI2017原力(三元环计数)
  • 原文地址:https://www.cnblogs.com/elpsycongroo/p/7242745.html
Copyright © 2011-2022 走看看