371 条题解
-
4伏轩彤 LV 10 @ 2017-12-02 15:15:09
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int n,a[1009]={0},t,s=0;
cin>>n;
for (int i=1;i<=n;++i)
{
cin>>t;
a[t]++;
}
for (int i=1;i<=1000;++i)
{
if (a[i]!=0)
{
++s;
}
}
cout<<s<<endl;
for (int i=1;i<=1000;++i)
{
if (a[i]!=0)
{
cout<<i<<" ";
}
}
cout<<endl;
return 0;
} -
32021-04-18 12:07:27@
其实这题用STL中的set(集合)做是再简单不过了
set,顾名思义,就是数学上的集合——每个元素最多只出现一次,并且set中的元素已经从小到大排好序。
头文件:#include < set > //用bits的童鞋请忽略常用操作 :
begin() 返回set容器的第一个元素的 地址
end() 返回set容器的最后一个元素 **地址 **
clear() 删除set容器中的所有的元素
empty() 判断set容器是否为空
max_size() 返回set容器可能包含的元素最大个数
size() 返回当前set容器中的元素个数
erase(it) 删除迭代器指针it处元素
insert(a) 插入某个元素
更多关set的用法详见
博客园最后上本题代码
#include<bits/stdc++.h> using namespace std; set<int>s; int a[105]; int main() { int n; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; s.insert(a[i]); } cout<<s.size()<<endl; while(!s.empty()) { cout<<*s.begin()<<" "; //注意此处的用法 s.erase(s.begin()); } return 0; }
-
32017-10-09 17:38:05@
#include <iostream>
#include <algorithm>
using namespace std;
int a[1010];
int book[1010];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
int ans=0;
for(int i=0;i<n;i++)
{
ans++;
book[i]=1;
if(i)
{
if(a[i]==a[i-1])
{
ans--;
book[i]=0;
}
}
}
cout<<ans<<endl;
for(int i=0;i<n;i++)
{
if(i)
cout<<" ";
if(book[i])
cout<<a[i];
}
cout<<endl;
return 0;
}
输出格式有问题竟然能AC... -
12022-04-09 22:08:16@
给大家参考下我自己写的代码(不看任何人)
#include <iostream> #include <algorithm> #include <vector> int a,c; using namespace std; int main(int argc, char** argv) { vector<int> b = {}; cin>>a; int d[a]; for(int i=0;i<a;i++){ cin>>c; b.push_back(c); d[i] = -1; } sort(b.begin(),b.end());//排序 int n=-1,m=0; for(int i=0;i<a;i++){//去重 if(b[i] == n){ d[i] = i; m++; } n = b[i]; } cout<<a-m<<endl; int x=0; for(int i=0;i<a;i++,x++){ if(d[x] != i){ cout<<b[i]<<" "; } } return 0; }
有帮助的请点个赞
-
12022-03-17 16:47:42@
hh,set 4行搞定
#include<bits/stdc++.h> using namespace std; set<int> s; int x,n,i; int main() { cin>>n; for(int i=1;i<=n;i++) cin>>x,s.insert(x); cout<<s.size()<<endl; for(set<int>::iterator it=s.begin();it!=s.end();it++) cout<<*it<<" "; }
-
12021-12-26 17:59:52@
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
int a[1005]={0};
int s;
for(int i=1;i<=n;i++)
{
cin>>s;
a[s]=1;
}
for(int i=1;i<=1001;i++)
{
if(a[i]==1)
{
sum++;
}
}
cout<<sum<<endl;
for(int i=1;i<=1001;i++)
{
if(a[i]==1)
{
cout<<i<<" ";
}
}
return 0;
}//去重 -
12021-12-26 17:59:27@
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
int a[1005]={0};
int s;
for(int i=1;i<=n;i++)
{
cin>>s;
a[s]=1;
}
for(int i=1;i<=1001;i++)
{
if(a[i]==1)
{
sum++;
}
}
cout<<sum<<endl;
for(int i=1;i<=1001;i++)
{
if(a[i]==1)
{
cout<<i<<" ";
}
}
return 0;
} -
12021-08-29 16:48:48@
#include<iostream> using namespace std; int main(){ int n,x; cin>>n; int sum(0),bus[1002]={0}; for(int i=1;i<=n;i++){ cin>>x; if(bus[x]) //如果这个数已经出现过了,那么跳过 continue; bus[x]++; //如果没有出现,把数据放在桶里,并让总数居++ sum++; } cout<<sum<<endl; for(int i=1;i<=1000;i++) if(bus[i]) cout<<i<<' '; cout<<endl; return 0; }
-
12021-07-17 15:58:15@
牛马题,直接地精不就好了,CSDNyyds
-
12021-06-13 10:59:13@
可以直接桶牌
#include<iostream> using namespace std; bool tp[2000]; int n,tot; int main(){ ios::sync_with_stdio(0); cin>>n; for(int i=1;i<=n;i++){ int x; cin>>x; if(!tp[x]){ tot++; tp[x]=1; } } cout<<tot<<endl; for(int i=1;i<=1000;i++){ if(tp[i]){ cout<<i<<" "; } } return 0; }
-
02023-05-27 00:03:27@
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a[101]={},t,ans[101]={},w=0,ans1;/*给的范围很小,直接用冒泡*/
cin>>n;
ans1=n;
for(int j=0;j<n;j++){
cin>>a[j];
}
for(int j=0;j<n;j++){
for(int k=0;k<n-1;k++){
if(a[k]>a[k+1]){
t=a[k];/*典型冒泡*/
a[k]=a[k+1];
a[k+1]=t;
}
}
}
t=a[0];
ans[w]=t;
w++;
for(int j=1;j<n;j++){
if(a[j]==t){/*一样就去重*/
ans1--;
}
else{
ans[w]=a[j];/*存答案*/
w++;
}
t=a[j];/*更新*/
}
cout<<ans1<<endl;
for(int j=0;j<w;j++){
cout<<ans[j]<<" ";
}
} -
02022-08-28 20:59:45@
#include<iostream>
using namespace std;
int main(){
int n,x;
cin>>n;
int sum(0),a[1002]={0};
for(int i=1;i<=n;i++){
cin>>x;
if(a[x])
continue;
a[x]++;
sum++;
}
cout<<sum<<endl;
for(int i=1;i<=1000;i++)
if(a[i])
cout<<i<<' ';
cout<<endl;
return 0;
} -
02022-08-28 20:59:40@
#include<iostream>
using namespace std;
int main(){
int n,x;
cin>>n;
int sum(0),a[1002]={0};
for(int i=1;i<=n;i++){
cin>>x;
if(a[x])
continue;
a[x]++;
sum++;
}
cout<<sum<<endl;
for(int i=1;i<=1000;i++)
if(a[i])
cout<<i<<' ';
cout<<endl;
return 0;
} -
02021-12-26 18:00:29@
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,sum=0;
cin>>n;
int a[1005]={0};
int s;
for(int i=1;i<=n;i++)
{
cin>>s;
a[s]=1;
}
for(int i=1;i<=1001;i++)
{
if(a[i]==1)
{
sum++;
}
}
cout<<sum<<endl;
for(int i=1;i<=1001;i++)
{
if(a[i]==1)
{
cout<<i<<" ";
}
}
return 0;
} -
02021-06-19 21:35:42@
#include"iostream"
#include"algorithm"
using namespace std;
int N;
int main()
{
cin>>N;
int a[N]={};
for(int i=0;i<N;i++)
{
cin>>a[i];
}
sort(a,a+N);
int n=unique(a,a+N)-a;
cout<<n<<endl;
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
} -
02021-03-17 10:01:40@
#include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <vector> #include <deque> using namespace std; namespace dts { int n,a[1<<7],vis[1<<10]; void main() { scanf("%d",&n); for (int i=0;i<n;i++) scanf("%d",&a[i]); memset(vis,0,sizeof(vis)); int ans=0; for (int i=0;i<n;i++) if (vis[a[i]]==0) vis[a[i]]=1,ans++; printf("%d\n",ans); for (int i=0;i<(1<<10);i++) if (vis[i]==1) printf("%d ",i); printf("\n"); } }; int main() { dts::main(); }
-
02021-02-08 14:11:53@
awa
sort+unique即可完成排列+去重
记得加algorithm头文件qaq
AC代码:
#include<iostream>
#include<algorithm>
using namespace std;
const int Maxn = 1e3+5;
int n,a[Maxn];
int main(){
cin>>n;
for(int i=0;i<n;++i) cin>>a[i];
sort(a,a+n);
int ans=unique(a,a+n)-a;
cout<<ans<<endl;
for(int i=0;i<ans;++i)
cout<<a[i]<<" ";
return 0;
} -
02021-02-08 14:10:24@
awa
sort+unique即可完成排列并去重qaq
记得加algorithm头文件呐
AC代码:
#include<iostream>
#include<algorithm>
using namespace std;
const int Maxn = 1e3+5;
int n,a[Maxn];
int main(){
cin>>n;
for(int i=0;i<n;++i) cin>>a[i];
sort(a,a+n);
int ans=unique(a,a+n)-a;
cout<<ans<<endl;
for(int i=0;i<ans;++i)
cout<<a[i]<<" ";
return 0;
} -
02020-11-28 20:48:06@
思路:sort排序+判断
#include<iostream> #include<algorithm> #include<cstdio> using namespace std; int m; int sum,d=-1; int que[201]; int main() { cin>>m; for(int i=1;i<=m;i++) cin>>que[i]; sort(que+1,que+1+m); sum=m; for(int i=1;i<=m;i++) { if(d!=que[i]) d=que[i]; else sum--; } cout<<sum<<endl; for(int i=1;i<=m;i++) { if(d!=que[i]) { d=que[i]; if(i!=1) cout<<" "<<d; else cout<<d; } } return 0; }
-
02020-06-05 11:33:38@
#include <cstdio> #include <iostream> using namespace std; int n,cnt = 0; bool bo[1001]; int main(){ cin >> n; for (int i = 1;i <= n;i++){ int x; cin >> x; if (bo[x]==false){ bo[x] = true; cnt++; } } cout<<cnt<<endl; for (int i = 1;i <= n;i++){ if (bo[i]){ cout<<i<<" "; } } reuturn 0; }