【刷题记录】七月七日忆山东兄弟(呸,是刷题记录)
今天简单刷了几道NOIP2014的题,今天发代码。
————————————————————————————————————————————————————————————————————————-—
【NOIP201401-珠心算测验】
#include<stdio.h> #include<stdlib.h> int cmp(const void *a,const void *b); int main() { int n,i,a[103]={0}; int ans=0; int j,k,flag; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } qsort(a,n,sizeof(a[0]),cmp); for(i=0;i<n;i++) { flag=0; for(j=0;j<n&&(a[j]<=a[i]);j++) { for(k=j+1;k<n&&(a[j]+a[k]<=a[i]);k++) { if(a[i]==a[j]+a[k]) { ans++; flag=1; break; } } if(flag==1) break; } } printf("%d ",ans); return 0; } int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b; }
【NOIP201402-比例化简】
#include<iostream> #include<cstdio> using namespace std; int gcd(int x,int y) { if(y==0)return x; else return gcd(y,x%y); } int main() { int i,j,k; int a,b,l,a1,b1; double k1,k2,k3; cin>>a>>b>>l; k1=a*1.0/b; k3=l*1.0; for(i=1;i<=l;i++) for(j=1;j<=l;j++) if(gcd(i,j)==1) { k2=i*1.0/j; if(k2>=k1 && k2-k1<k3) { a1=i;b1=j; k3=k2-k1; } } cout<<a1<<" "<<b1; return 0; }