wc 命令用于统计指定文本的行数、字数、字节数。格式为“wc [参数] 文本”

先是志习题博客!!

参数                                                       作用

立无异道题比较简单。

-l                                                       只展示行数

问题就是是输入一个数列。

-w                                                     只展示单词数

虽是每插入一个,找到前面插入了的与的异最小之价值,将她们之差值加入答案。

-c                                                      只展示字节数

这边可以想到平衡树。

统计时系统中之用户的个数:

列一样潮输入,加进treap中,然后找她的先行者和后,比较他们的差值大小,小之加盟答案。

[root@linuxprobe ~]#wc -l /etc/passwd

假使treap不明了的话语,可以扣押我之前面无异首博客:http://www.cnblogs.com/justin-cao/p/8270272.html

38 /etc/passwd

贴一波代码:

cut命令用于通过列来领取文本字符,格式为:“cut[参数] 文本”。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<ctime>
 6 using namespace std;
 7 int n,root,size;
 8 long long ans,sum;
 9 long long inf=1000005;
10 long long a[50010];
11 struct P{
12     int l,r,sz,re,key,rd;
13 }t[50010];
14 void update(int k)
15 {
16     t[k].sz=t[t[k].l].sz+t[t[k].r].sz+t[k].re;
17 }
18 void left(int &k)
19 {
20     int y=t[k].r;
21     t[k].r=t[y].l;
22     t[y].l=k;
23     t[y].sz=t[k].sz;
24     update(k);
25     k=y;
26 }
27 void right(int &k)
28 {
29     int y=t[k].l;
30     t[k].l=t[y].r;
31     t[y].r=k;
32     t[y].sz=t[k].sz;
33     update(k);
34     k=y;
35 }
36 void init(int &k,int x)
37 {
38     if(k==0)
39     {
40         size++;
41         k=size;
42         t[k].sz=1;
43         t[k].re=1;
44         t[k].key=x;
45         t[k].rd=rand();
46         return;
47     }
48     t[k].sz++;
49     if(t[k].key==x)   t[k].re++;
50     else{
51         if(x>t[k].key)
52         {
53             init(t[k].r,x);
54             if(t[t[k].r].rd<t[k].rd)    left(k);
55         }
56         else{
57             init(t[k].l,x);
58             if(t[t[k].l].rd<t[k].rd)    right(k);
59         }
60     }
61 }
62 void pre(int k,int x)
63 {
64     if(k==0)  return;
65     if(t[k].key<=x)
66     {
67          ans=k;
68          pre(t[k].r,x);
69     }
70     else pre(t[k].l,x);
71 }
72 void nxt(int k,int x)
73 {
74     if(k==0)  return;
75     if(t[k].key>=x)
76     {
77         ans=k;
78         nxt(t[k].l,x);
79     }
80     else nxt(t[k].r,x);
81 }
82 int main()
83 {
84     srand(0);
85     scanf("%d",&n);
86     t[0].key=inf;
87     for(int i=1;i<=n;i++)  scanf("%lld",&a[i]);
88     init(root,a[1]);
89     for(int i=2;i<=n;i++)
90     {
91         pre(root,a[i]);
92         int x=ans;
93         nxt(root,a[i]);
94         sum+=(long long)min(abs(a[i]-t[x].key),abs(t[ans].key-a[i]));
95         init(root,a[i]);
96     }
97     printf("%lld",sum+a[1]);
98     return 0;
99 }

参数                                                      作用

题材链接:https://www.luogu.org/problemnew/show/2234或https://vjudge.net/problem/HYSBZ-1588

-d
分隔符                                           指定分隔符,默认为Tab。

多谢观看。

-f                                                     指定显示的列数。

使产生尴尬指出,请尽管提出,感激不尽!

-c                                                     单位变更呢字符

 

博当前系面临装有用户之号:

参数作用: -d 以“:”来开分隔符,-f参数代表单独拘留率先列的始末。

[root@linuxprobe ~]#cut -d -f1 /etc/passwd

赢得root用户的默认SHELL解释器:

[root@linuxprobe ~]#grep ^root /etc/passwd | cut -d: -f 7

/bin/bash