A
题意:给出变换规则,单个数字t可以变成9-t,然后给出一个数,问最小能够变成多少。
自己做的时候理解成了不能输出前导0,但是题目的本意是不能有前导0(即最高位不能是0,其余位数按照规则就好) 555555---读题仔细o(╯□╰)o
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 char s[100]; 7 int main() 8 { 9 int len,i; 10 scanf("%s",s); 11 len=strlen(s); 12 for(i=1;i<len;i++) 13 { 14 if(s[i]>'4') s[i]='0'+'9'-s[i]; 15 } 16 if(s[0]=='9') s[0]='9'; 17 else 18 { 19 if(s[0]>'4') s[0]='0'+'9'-s[0]; 20 } 21 puts(s); 22 }
B
题意:给出n个坐标,以及一个起始的坐标,问能够构成多少条斜率不同的直线
自己做的时候没有把斜率不存在的情况考虑进去,而且最后找出有多少条斜率不同的直线也没有写对-----
最后看的题解,学习了map函数===就好写了----
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<map> 6 using namespace std; 7 map<double,int>key; 8 int main() 9 { 10 int n,flag=0; 11 double a,b,x,y,m; 12 cin>>n>>x>>y; 13 for(int i=0;i<n;i++) 14 { 15 cin>>a>>b; 16 if(a==x) flag=1;//分母为0即斜率不存在的时候单独考虑 17 else key[(y-b)/(x-a)]=1; 18 } 19 printf("%d ",key.size()+flag); 20 }
C
题意:先给出n个字符串,再给出n个串查询,问是否存在只有一个位置的字母不同其余的都相同的字符串
还是不会====字典树======挖坑====