@morehigh
2016-12-14T07:13:27.000000Z
字数 2239
阅读 1350
第二次作业
**Friendship of Frog **
题意:
给出一串小写字母,求两个相同字母最小距离为多少
解题思路:
直接暴力求解
ac代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define INF 1e9using namespace std;char a[1010];int main(){int t;int cas=1;cin>>t;while(t--){scanf("%s",a);int ans=INF;for(int i=0;a[i]!='\0';i++){for(int j=i+1;a[j]!='\0';j++){if(a[i]==a[j]){ans=min(ans,j-i);break;}}}if(ans!=INF)cout<<"Case #"<<cas++<<": "<<ans<<endl;elsecout<<"Case #"<<cas++<<": "<<"-1"<<endl;}return 0;}
**Li;nearization of the kernel functions in SVM **
题意:
f(x,y,z) = ax^2 + by^2 + cy^2 + dxy + eyz + fzx + gx + hy + iz + jx^2 <-> p, y^2 <-> q, z^2 <-> r, xy <-> u, yz <-> v, zx <-> wg(p,q,r,u,v,w,x,y,z) = ap + bq + cr + du + ev + fw + gx + hy + iz + j形成f->g的一个映射,给出a, b, c, d, e, f, g, h, i, j,将g输出
解题思路:
做这道题的时候,发现自己的想法有好多漏洞,其中要考虑“+”什么时候加,系数为1和-1时的情况,系数为0的情况,系数全为0的情况。
ac代码:
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;char ss[] = {'p', 'q', 'r', 'u', 'v', 'w', 'x', 'y', 'z', '\0'};int a[15];int main (){int t;scanf("%d", &t);while(t--){for(int i = 0; i < 10; ++i)scanf("%d", &a[i]);int ans = 0;int flag = 0;for(int i = 0; i < 9; ++i){if(a[i] == 0) continue;if(a[i] == 1 ){if(flag)printf("+");elseflag++;printf("%c", ss[i]);continue;}if(a[i] == -1){printf("-%c", ss[i]);flag++;continue;}if(a[i] > 0){if(flag)printf("+");elseflag++;printf("%d%c", a[i], ss[i]);}elseprintf("%d%c", a[i], ss[i]), flag++;}if(a[9] > 0){if(flag)printf("+");elseflag++;printf("%d", a[9]);}else if( a[9] < 0){flag ++;printf("%d", a[9]);}if(!flag)printf("0");printf("\n");}return 0;}
**Game with Pearls **
题意:
Jerry 和 Tom 玩一个游戏 , 给你 n 个盒子 , a[ i ] 表示开始时 ,第 i 个盒子中的小球的个数 。 然后 Jerry 可以在每个盒子里加入0或k的倍数的小球 ,操作完后,Jerry 可以重新排列盒子的顺序,最终使第i个盒子中有i个小球。若Jerry能使最终的盒子变成那样,就输出 “Jerry” ,否则输出 “Tom” 。
题解:
M<=500,1 <= N <= 100, 1 <= K <= N,暴力搜索能够直接让a[j]加上k的整数倍或者是0,得到的数若为i,然后把这个数的位置进行标记,并把这个数赋值为i,直到i==n,然后匹配是否满足1--n所有的数。
ac代码:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define N 101234using namespace std;int a[120];int flag[120];bool cmp(int x,int y){return x<y;}int main(){int n,k,t;cin>>t;while(t--){cin>>n>>k;for(int i=1;i<=n;i++){scanf("%d",&a[i]);}memset(flag,0,sizeof(flag));sort(a+1,a+n+1,cmp);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[j]<=i){if((i-a[j])%k==0&&!flag[j]){flag[j]=1;a[j]=i;break;}}}}int mm=0;sort(a+1,a+n+1,cmp);for(int i=1;i<=n;i++){if(a[i]!=i)mm=1;}if(mm==0)printf("Jerry\n");elseprintf("Tom\n");}return 0;}