• [FZYZOJ 2148] 小添添的灰机猫


    P2148 -- 小添添的灰机猫

    时间限制:1000MS

    内存限制:131072KB

    Description

    成功从WTM晋升为ACM的小添添越来越SXBK了,开始将魔爪伸向了自己的灰H机J猫。事情是这样的,小添添有k只猫,分别是0~k-1。他先用rand() % k随机出了N个数,告诉你他需要临幸的灰机猫的编号,如果一只猫多次出现,也只算一次。因为小添添一开始就按照自己喜欢的顺序排好了编号,所以选出来的猫的顺序不能乱。请告诉他他将临幸哪些灰机猫。

    Input Format

    第一行输入两个正整数N和k,表示有题目中的N和k。

    第二行有N个正整数,为rand() % k的结果。

    Output Format

    第一行一个整数,表示选出的猫的个数。

    第二行为选出的猫的编号,数字之间用空格隔开

    Sample Input

    3 5
    2 3 3

    Sample Output

    2
    2 3

    Hint

    【题解】

    这题是一个练习STL_set的好题目啊,特别要学会iterator怎么使用

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 set<int> t;
     4 char B[1<<15],*S=B,*T=B;
     5 char getchar2() {
     6     return S==T&&(T=(S=B)+fread(B,1,1<<15,stdin),S==T)?0:*S++;
     7 }
     8 int read2() {
     9     int x=0; int f=1;
    10     char ch=getchar2();
    11     while(ch<'0'||ch>'9') {if(ch=='-') f=-1; ch=getchar2();}
    12     while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+ch-'0'; ch=getchar2();}
    13     return x*f;
    14 }
    15 int main() {
    16     int n, x;
    17     n=read2();read2();
    18     for(int k = 0; k < n; k++) {
    19         x=read2();
    20         t.insert(x);
    21     }
    22     printf("%d
    ", t.size());
    23     for(set<int>::iterator i = t.begin(); i != t.end(); i++) printf("%d ", *i);
    24 }
    View Code
  • 相关阅读:
    寿司点餐系统Sprint1总结
    寿司点餐系统一周总结
    对点餐APP现阶段开发的问题
    寿司点餐系统11.16
    Sprint
    R扩展包
    实验8 SQLite数据库操作
    实验7 BindService模拟通信
    实验6 在应用程序中播放音频和视频
    实验5 数独游戏界面设计
  • 原文地址:https://www.cnblogs.com/TonyNeal/p/fzyzoj2148.html
Copyright © 2020-2023  润新知