• 吉首大学第九届"新星杯"大学生程序设计大赛


    Y 老师的乐高小镇

    链接:https://ac.nowcoder.com/acm/contest/3667/I
    来源:牛客网

    题目描述

    Y 老师从小喜欢用乐高搭建自己喜欢的模型,这不突然有一天 Y 老师想用乐高建造一个神奇的小镇。小镇由无穷所不同的建筑物组成(假设 Y 老师有魔法),但是 Y 老师是一个有着强迫症的中二青年,所以一条街道如果修建了一定数量的乐高建筑,那么下个街道一定会修其两倍数量的乐高建筑,并且现在已知第一条街道只有一所乐高建筑。由于元旦佳节的临近,Y 老师还想继续为它的乐高城市添灯结彩,假设 Y 老师现在手上有 k 个装饰品,并且  Y 老师一天必须为一条街道的所有建筑都挂上一个装饰品(如果 Y 老师不能为这条街道的所有建筑挂上装饰品的话,Y 老师是不会选择这条街道的,而且 Y 老师一天只会选择一条街道),请问这 k 个装饰品最少多少天挂完呢 ?

    输入描述:

    多组输入
    每行一个整数 k (1<=k<=1e15)

    输出描述:

    最少的天数
    示例1

    输入

    3 

    输出

    2 

    说明

    Y 老师两天分别选择第一条街和第二条街

    备注:

    多组输入

    思路:把k转成2进制,数有多少个1就行 

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <iostream>
     4 #include <string>
     5 #include <math.h>
     6 #include <algorithm>
     7 #include <vector>
     8 #include <queue>
     9 #include <set>
    10 #include <stack>
    11 #include <map>
    12 #include <sstream>
    13 const int INF=0x3f3f3f3f;
    14 typedef long long LL;
    15 const int mod=1e9+7;
    16 const int maxn=2*1e6+10;
    17 using namespace std;
    18  
    19 int main()
    20 {
    21     LL n;
    22     while(~scanf("%lld",&n))
    23     {
    24         int day=0;
    25         LL t;
    26         while(n)
    27         {
    28             t=n%2;
    29             if(t) day++;
    30             n/=2;
    31         }
    32         printf("%d
    ",day);
    33     }
    34     return 0;
    35 }

    K 小阳数数

    链接:https://ac.nowcoder.com/acm/contest/3667/K
    来源:牛客网

    题目描述

    武林内纷乱不断,各地都自立门派,门派的人为了识别门内弟子,给了每个人一块令牌,这个令牌有个神奇的地方,
    门派内的弟子的令牌不一定相同,
    下面是他的识别规则:
    每个人的令牌都是一串数字,如果两个人的令牌有相似的地方,即有相同的数字,那就属于同一个门派,特别的,
    如果两个人没有相同的数字,但是这个两个人都和另一个人有相同的数字,那么这三个人同属一个门派,现在有一个任务
    ,给你n个令牌,让你认出有多少个门派
    例如 
    3
    13579
    2468
    12
    这里答案应该是1,因为第一个人和第二个人同时和第三个人有关系

    输入描述:

    第一行  输入一个t,代表数据组数(1<=t<=10)
    第二行 输入一个n,代表n块令牌   (1<=n<=1000)
    下面n行,每行一个数字序列,(1<=len<=1000)

    输出描述:

    有t行,每行一个数,代表有这组数据有多少个门派
    示例1

    输入

    2
    3
    13579
    2468
    12
    5
    12
    23
    34
    5
    5678

    输出

    1
    2

    把每个数字当成一个点,对数字进行并查集操作

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <iostream>
     4 #include <string>
     5 #include <math.h>
     6 #include <algorithm>
     7 #include <vector>
     8 #include <stack>
     9 #include <queue>
    10 #include <set>
    11 #include <map>
    12 #include <sstream>
    13 const int INF=0x3f3f3f3f;
    14 typedef long long LL;
    15 const int mod=1e9+7;
    16 const double PI = acos(-1);
    17 #define Bug cout<<"---------------------"<<endl
    18 const int maxn=1e5+10;
    19 using namespace std;
    20 
    21 int fa[10];
    22 
    23 int find(int x)
    24 {
    25     while(x!=fa[x])
    26         x=fa[x];
    27     return x;
    28 }
    29 
    30 int main()
    31 {
    32     int T;
    33     scanf("%d",&T);
    34     while(T--)
    35     {
    36         int n;
    37         scanf("%d",&n);
    38         char str[1005];
    39         int vis[10]={0};
    40         for(int i=0;i<10;i++)
    41             fa[i]=i;
    42         for(int i=1;i<=n;i++)
    43         {
    44             scanf("%s",str);
    45             vis[str[0]-'0']=1;
    46             int t=str[0]-'0';
    47             for(int i=1;str[i];i++)
    48             {
    49                 vis[str[i]-'0']=1;;
    50                 int x=find(t);
    51                 int y=find(str[i]-'0');
    52                 if(x!=y)
    53                     fa[x]=y;
    54             }
    55         }
    56         set<int> st;
    57         for(int i=0;i<10;i++)
    58         {
    59             if(vis[i])
    60                 st.insert(find(i));
    61         }
    62         printf("%d
    ",st.size());
    63     }
    64     return 0;
    65 }

    -

  • 相关阅读:
    Linux系统 自动化运维工具之cobbler
    Linux系统 中间件服务tomcat
    Linux系统 WEB服务Nginx
    Linux系统 7版本忘记root密码重置
    设置vim显示行号等
    ubuntu 安装nodejs
    新的开始----一个快毕业的学生的小总结
    Excel导出下拉框(导出下拉框较多的选项)
    Excel导出下拉框(导出下拉框较少的选项)
    .NET邮件发送
  • 原文地址:https://www.cnblogs.com/jiamian/p/12154535.html
Copyright © 2020-2023  润新知