A题 QWQ和QAQ(NEFU OJ 1609)
using namespace std;
struct cp //定义结构体(三种产品)
{
int a,b,c; //需要原料的量
int d;
} data[5];
int main()
{
int t;
while(cin >> t)
{
while(t--)
{
memset(data,0,sizeof(data));
int sum,maxx=-1,x,y,z;;
for(int i=1; i<=3; i++)
cin >> data[i].a >> data[i].b >> data[i].c;
cin >> x >> y >> z;
for(int i=1; i<=3; i++)
cin >> data[i].d;
int tmp[5]= {0},ttmp[5];
for(int i=1; i<=3; i++) //求三种产品的最大能生产量
{
if(data[i].a!=0) //注意原料是否为0,否则会WA了
ttmp[1]=x/data[i].a;
else
{
ttmp[1]=2005; //不需要原料
}
if(data[i].b!=0)
ttmp[2]=y/data[i].b;
else
{
ttmp[2]=2005;
}
if(data[i].c!=0)
ttmp[3]=z/data[i].c;
else
{
ttmp[3]=2005;
}
sort(ttmp+1,ttmp+4); //寻找每种原料能生产的最小值
tmp[i]=ttmp[1];
}
int i,j,k;
for(i=0; i<=tmp[1]; i++)//产品1
{
for(j=0; j<=tmp[2]; j++)//产品2
{
for(k=0; k<=tmp[3]; k++)//产品3
{
sum=i*data[1].d+j*data[2].d+k*data[3].d;//价值
int sum1[5];
sum1[1]=i*data[1].a+j*data[2].a+k*data[3].a;//判断是否会超过原料
sum1[2]=i*data[1].b+j*data[2].b+k*data[3].b;
sum1[3]=i*data[1].c+j*data[2].c+k*data[3].c;
if(sum1[1]<=x&&sum1[2]<=y&&sum1[3]<=z)
if(maxx<sum)
maxx=sum;
}
}
}
cout << maxx <<endl;
}
}
return 0;
}
B题 QWQ和神奇的传送器(NEFU OJ )
#include <bits/stdc++.h>
using namespace std;
int a[15][15],i,j;
void excel() //打表(与排列组合有关)杨辉三角
{
a[1][1]=1;
for(i=2;i<=13;i++)
{
for(j=1;j<=13;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
int main()
{
int t;
while(cin >> t)
{
excel();//打标,别忘了;
int m,n;
while(cin >> m >> n)
{
cout << a[n][m] <<endl;//数学中的隔板法
}
}
return 0;
}
C题 QWQ和神秘商人(NEFU OJ 1607)
#include <bits/stdc++.h>
using namespace std;
struct ada{
int x,y;
}a[100005];
bool cmp(ada a,ada b) //结构体排序
{
if(a.x!=b.x)
return a.x>b.x;
else
return a.y>b.y;
}
int main()
{
int n,k;
while(cin >> n>> k)
{
memset(a,0,sizeof(a));
int ans=0;
for(int i=1;i<=n;i++)
cin >> a[i].x;
for(int i=1;i<=n;i++)
cin >> a[i].y;
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++)
{
if(k>=a[i].x)
{
ans+=a[i].y;
k=a[i].x;
}
}
cout << ans << endl;
}
return 0;
}
D题 QWQ和棋局挑战(NEFU 1606)
#include <bits/stdc++.h>
using namespace std;
int a[15][15];
void excel() //打表(与排列组合有关)杨辉三角
{
int i,j;
a[1][1]=1;
for(i=2;i<=13;i++)
{
for(j=1;j<=13;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
int main()
{
excel();
int n,k;
while(cin >> n >> k)
{
int sum;
sum=a[n+1][k+1];
long long ans=1;
int tmp=n+1-k,i;
for(i=n;i>=tmp;i--) //排列组合
ans=ans*i;
cout << sum*ans << endl;
}
return 0;
}
E题 QWQ和彩色石(NEFU OJ 1604)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n; //桶排序
while(cin >> n)
{
int x,a[105]={0},maxx=0;
for(int i=1;i<=n;i++)
{
cin >> x;
a[x]++;
if(a[x]>maxx)
maxx=a[x];
}
cout << maxx << endl;
}
return 0;
}
F题 QWQ和翻译机(NEFU OJ 1605)
#include<bits/stdc++.h>
using namespace std;
char a[105], b[105];
bool flag = 1;
int main()
{
while(scanf("%s %s", a, b) != EOF)
{
int n = strlen(a);
for(int i=0; i<n; i++)
if(a[i] != b[n-i-1])
{
flag = 0;
break;
}
if(!flag) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
return 0;
}
G题 海贼的奖品赞助(NEFU OJ 1610)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
double x,ans=0,sum=0;
for(int i=1;i<=n;i++)
{
cin >> x;
if(x>=20.0)
{
sum++;
}
}
printf("%.2lf\n",sum/n);
}
return 0;
}