#include<bits/stdc++.h>
using namespace std;
int f[300],ans;
string st;
int main()
{
cin>>st;
for(int i=0;i<st.size();i++)
if(!f[int(st[i])])ans++,f[int(st[i])]=1;
cout<<ans<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int f[1000010];
int n,x,tot;
int main()
{
scanf("%d",&n);
f[1]=1;
f[2]=1;
f[3]=1;
f[4]=1;
f[5]=1;
f[6]=1;
f[7]=1;
f[8]=1;
f[9]=1;
f[153]=3;
f[370]=3;
f[371]=3;
f[407]=3;
f[1634]=4;
f[4150]=5;
f[4151]=5;
f[8208]=4;
f[9474]=4;
f[54748]=5;
f[92727]=5;
f[93084]=5;
f[194979]=5;
f[548834]=6;
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
if(f[x])printf("%d %d\n",x,f[x]),tot++;
}
printf("%d\n",tot);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
struct node{bool f;int k;}e[50050];
int n,a,b,ans;
string st;
bool cmp(node a,node b){return a.k<b.k;}
int main()
{
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=n;i++)
{
cin>>st;
scanf("%d",&e[i].k);
if(st=="S")e[i].f=1;else e[i].f=0;
}
sort(e+1,e+n+1,cmp);
if(e[1].f)ans+=e[1].k-a+1;
if(e[n].f)ans+=b-e[n].k;
for(int i=2;i<=n;i++)
{
if(e[i].f&&e[i-1].f)ans+=e[i].k-e[i-1].k;
else if(e[i].f&&!e[i-1].f)ans+=(e[i].k-e[i-1].k)/2+1;
else if(!e[i].f&&e[i-1].f)ans+=(e[i].k-e[i-1].k)/2;
}
printf("%d\n",ans);
return 0;
}
C++真是一门难学的语言
#include<bits/stdc++.h>
using namespace std;
struct node{bool f;int k;}e[50050];
int n,a,b,ans;
string st;
bool cmp(node a,node b){return a.k<b.k;}
int xx(int x,int y)
{
if(x>y||x>b||y<a)return 0;
if(x>=a&&y<=b)return y-x+1;
if(x<a)return y-a+1;
if(y>b)return b-x+1;
}
int main()
{
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=n;i++)
{
cin>>st;
scanf("%d",&e[i].k);
if(st=="S")e[i].f=1;else e[i].f=0;
}
sort(e+1,e+n+1,cmp);
if(e[1].f)ans+=xx(a,e[1].k);
if(e[n].f)ans+=xx(e[n].k+1,b);
for(int i=2;i<=n;i++)
{
if(e[i].f&&e[i-1].f)ans+=xx(e[i-1].k+1,e[i].k);
else if(!e[i].f&&e[i-1].f)ans+=xx(e[i-1].k+1,(e[i].k+e[i-1].k)/2);
else if(e[i].f&&!e[i-1].f)ans+=xx((e[i].k+e[i-1].k+1)/2,e[i].k);
}
printf("%d\n",ans);
return 0;
}
C++真是一门难学的语言
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int dis[N],x[N],y[N];
int n,ans;
bool f[N];
void prim(int st)
{
memset(dis,10,sizeof(dis));
for(int i=1;i<=n;i++)dis[i]=min(abs(x[1]-x[i]),abs(y[1]-y[i]));
memset(f,0,sizeof(f));
f[st]=1; ans=0;
for(int i=2;i<=n;i++)
{
int minn=2e9,k=0;
for(int j=1;j<=n;j++)
if(!f[j]&&dis[j]<minn){minn=dis[j];k=j;}
f[k]=1;ans+=minn;
for(int j=1;j<=n;j++)
if(!f[j])dis[j]=min(dis[j],min(abs(x[k]-x[j]),abs(y[k]-y[j])));
}
return;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&x[i],&y[i]);
}
prim(1);
printf("%d\n",ans);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
struct node{int x,y,d;}a[N],b[N];
int n,f[N];
long long ans;
bool cmp1(node a,node b){return a.x<b.x;}
bool cmp2(node a,node b){return a.y<b.y;}
bool cmp3(node a,node b){return a.d<b.d;}
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
a[i].d=i;
f[i]=i;
}
sort(a+1,a+n+1,cmp1);
for(int i=1;i<=n-1;i++)
{
b[i].x=a[i].d;
b[i].y=a[i+1].d;
b[i].d=a[i+1].x-a[i].x;
}
sort(a+1,a+n+1,cmp2);
for(int i=n;i<=n*2-2;i++)
{
b[i].x=a[i-n+1].d;
b[i].y=a[i-n+1+1].d;
b[i].d=a[i-n+1+1].y-a[i-n+1].y;
}
sort(b+1,b+2*n-2+1,cmp3);
for(int i=1;i<=n*2-2;i++)
{
int x=find(b[i].x),y=find(b[i].y);
if(f[x]!=f[y])f[x]=y,ans+=b[i].d;
}
printf("%lld\n",ans);
return 0;
}
原文:https://www.cnblogs.com/cqh123/p/12644226.html