#include<bits/stdc++.h>
using namespace std;
stack<char>P;
int main()
{
char t[33];
while(~scanf("%s",&t))
{
int L=strlen(t),k=0;
for(int i=L-1;i>=0;i--)
{
if(k==3)
{
P.push(',');
k=0;
}
P.push(t[i]);
k++;
}
while(!P.empty())
{cout<<P.top();
P.pop();
}
cout<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n,m;
while(~scanf("%lld%lld",&n,&m))
{
long long s=0,t=1;
while(n%2==1&&m%2==1)
{
s+=t;
t=t*4;
n=n/2;m=m/2;
}
printf("%lld\n",s);
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
struct node
{
int x,y,z;
}a[100003];
bool cmp(node a,node b)
{
if(a.x!=b.x)
return a.x<b.x;
else if(a.y!=b.y)
return a.y<b.y;
return a.z<b.z;
}
int main()
{
int n;
while(~scanf("%d",&n))
{
int i,j;
for(i=0;i<n;i++)
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
sort(a,a+n,cmp);
for(i=0;i<n;i++)
printf("%d %d %d\n",a[i].x,a[i].y,a[i].z);
}
return 0;
}
开始的时候除以2*n放在了最后,一直爆long long
差点写个高精度,后来想到把n提到前面,可以
避免三个连乘爆long long.
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n,A0,An;
int Q;
while(~scanf("%lld%lld%lld%d",&n,&A0,&An,&Q))
{
long long L=0,r=0;
while(Q--)
{
scanf("%lld%lld",&L,&r);
long long x,y;
x=A0*(2*n-L-r)/n*(r-L+1)/2;
y=An*(L+r)/n*(r-L+1)/2;
printf("%lld\n",x+y);
}
}
return 0;
}
自己写的时候什么小数化整数,整数化小数,还要考虑精度,
各种各样的问题,代码写了一长串终于过掉了,后来看了
别人的代码,学习了floor ceil 两个取整函数,完美解决
问题。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;scanf("%d",&T);
while(T--)
{
double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);
a=a*c/b;
long long t=floor(a*1000);
if(t%10<=4) printf("%.2lf\n",floor(a*100)/100.00);
else if(t%10>=6)printf("%.2lf\n",ceil(a*100)/100.00);
else
{
if(a*10000000-t*10000>0)printf("%.2lf\n",ceil(a*100)/100.00);
else
{
t=t%100/10;
if(t%2)
printf("%.2lf\n",ceil(a*100)/100.00);
else
printf("%.2lf\n",floor(a*100)/100.00);
}
}
}
return 0;
}
暴力找一遍就好
代码:
#include<bits/stdc++.h>
int a[100005],b[100005],c[100005];
bool mp[100005];
using namespace std;
int main()
{
int K,N,M,Q;
scanf("%d%d%d%d",&K,&N,&M,&Q);
int i,j;
for(i=1;i<=N;i++)
{
scanf("%d%d%d",&a[i],&b[i],&c[i]);
}
memset(mp,0,sizeof(mp));
for(i=1;i<=M;i++)
{
int x;scanf("%d",&x);
mp[x]=1;
}
bool bb=1;
while(bb)
{
bb=0;
for(i=1;i<=N;i++)
{
int x=a[i],y=b[i],z=c[i];
if(mp[x]&&mp[y]&&!mp[z])
{
mp[z]=1;bb=1;
}
if(mp[z]&&(!mp[x]||!mp[y]))
{
mp[x]=1;mp[y]=1;
bb=1;
}
}
}
while(Q--)
{
int x;scanf("%d",&x);
if(mp[x])printf("Yes\n");
else printf("No\n");
}
return 0;
}
#include<cstdio>
using namespace std;
int main()
{
int t[11];
t[0]=0;
t[1]=1;
t[2]=1;
t[3]=1;
t[4]=2;
t[5]=3;
t[6]=5;
t[7]=9;
t[8]=18;
t[9]=35;
int n;
while(~scanf("%d",&n))
{
printf("%d\n",t[n]);
}
return 0;
}