目录
二叉树学习
刷题网站
1. Milk
问题 C: [USACO 1.3.1]混合牛奶 - OJ (jsuacm.cn)http://jsuacm.cn/problem.php?cid=1698&pid=21.贪心:升序排列牛奶价格,尽量加价格低的milk;
2.注意:struct milk temp; t 变量类型!!!!
#include <stdio.h>
struct milk{
int p;
int v;
};
int main()
{
int m,n,i;
scanf("%d%d",&m,&n);
struct milk a[n];
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i].p,&a[i].v);
}
struct milk temp; //t变量类型!!!!
//选择排序
for( i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(a[j].p<a[i].p) //根据价格进行排序(升序)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
long long sum=0;
for(i=0;i<n;i++)
{
//if(n==0)break;
if(m>=a[i].v)
{
sum+=a[i].p*a[i].v;
m-=a[i].v;
}
else
{
sum+=a[i].p*m;
break;
}
}
printf("%lld",sum);
}
2.时间管理
问题 B: CC学姐的烦恼 - OJ (jsuacm.cn)http://jsuacm.cn/problem.php?cid=1698&pid=1
#include <stdio.h>
struct time {
int f;
int e;
}a[100];
int main()
{
int n,ans=1;
struct time temp;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %d",&a[i].f,&a[i].e);
}
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(a[i].e>a[j].e) //结束时间降序排序
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
else
{
if(a[i].f>a[j].f) //结束时间==,开始时间降序排列;
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
int flag=a[0].e;
for(int i=1;i<n;i++)
{
if(flag<=a[i].f)//前面的结束时间<=后面的开始时间
{
flag=a[i].e;//flag更新
ans++;
}
}
printf("%d",ans);
}
3. 围圈圈
问题 D: 实验室的聚餐 - OJ (jsuacm.cn)http://jsuacm.cn/problem.php?cid=1686&pid=3
#include<stdio.h>
int main()
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
char a[6005]= {};
int t=0;
int flag=1,i=0;
while(t<n)
{
if(i==2*n)//超过总人数回到第一人
i=0;
if(a[i]=='B')
{
i++;
continue;//跳过已经倒下的位置
}
if(flag==m)
{
a[i]='B';
flag=1;
i++;
t++;
}
else
{
flag++;
i++;
}
}
for(int i=0; i<2*n; i++)
{
if(a[i]!='B') printf("G");
else printf("%c",a[i]);
if((i+1)%50==0&&i>0) printf("\n");
}
printf("\n\n");
}
return 0;
}