zoukankan      html  css  js  c++  java
  • 1.21 贪心入门上午PAT例题题解

    1.B1023

    #include<cstdio>
    
    int a[10];
    
    int main()
    {
    	for(int i=0;i<=9;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	for(int i=1;i<=9;i++)
    	{
    		if(a[i])
    		{
    			printf("%d",i);
    			a[i]--;
    			break;
    		}
    	}
    	for(int i=0;i<=9;i++)
    	{
    		while(a[i]--)
    		{
    			printf("%d",i);
    		}
    	}
    }

    2.B1020

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int maxv=1011;
    
    struct node
    {
    	double price,sum,rate;
    }cake[maxv];
    
    bool cmp(node a,node b)
    {
    	return a.rate>b.rate;
    }
    
    int n;
    double d;
    
    int main()
    {
    	scanf("%d %lf",&n,&d);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%lf",&cake[i].sum);
    	}
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%lf",&cake[i].price);
    		cake[i].rate=cake[i].price/cake[i].sum;
    	}
    	sort(cake+1,cake+1+n,cmp);
    	int cnt=1;
    	double ans=0;
    	while(d>0&&cnt<=n)
    	{
    		if(d<=cake[cnt].sum)
    		{
    			ans+=(d*cake[cnt].rate);
    			d=0;
    		}
    		else
    		{
    			ans+=cake[cnt].price;
    			d-=cake[cnt].sum;
    		}
    		cnt++;
    	}
    	printf("%.2lf
    ",ans);
    	return 0;
    }
    

     

    3.A1037

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    
    const int maxv=1e5+5;
    
    int n,m;
    int a[maxv],b[maxv];
    
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    		scanf("%d",&a[i]);
    	scanf("%d",&m);
    	for(int i=1;i<=m;i++)
    		scanf("%d",&b[i]);
    	sort(a+1,a+1+n);
    	sort(b+1,b+1+m);
    	int ans=0;
    	int p=1;
    	while(p<=n&&a[p]<0&&b[p]<0)
    	{
    		ans+=a[p]*b[p];
    		p++;
    	}
    	int p1=n;
    	int p2=m;
    	while(p1>=1&&p2>=1&&a[p1]>0&&b[p2]>0)
    	{
    		ans+=a[p1]*b[p2];
    		p1--;
    		p2--;
    	}
    	printf("%d
    ",ans);
    }
    

    4.A1038

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<string>
    using namespace std;
    
    const int maxv=1e4+4;
    string s[maxv];
    bool cmp(string a,string b)
    {
    	return a+b<b+a;
    }
    
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    		cin>>s[i];
    	sort(s+1,s+1+n,cmp);
    	string ans="";
    	for(int i=1;i<=n;i++)
    		ans+=s[i];
    	while(ans.length()>0&&ans[0]=='0')
    		ans.erase(ans.begin());
    	if(ans.length()==0)
    		cout<<0<<endl;
    	else
    		cout<<ans<<endl;
    	return 0;
    }
    

      

  • 相关阅读:
    全美在线上云 保证上千考场统一监考
    如何构建一个较为通用的业务技术架构
    在tomcat下context.xml中配置各种数据库连接池
    Java中的多线程
    彻底理解ThreadLocal
    plsql工具使用
    软件清单
    EL表达式
    AOP(execution表达式)
    JSTL标签库之核心标签
  • 原文地址:https://www.cnblogs.com/fishdog/p/10297638.html
Copyright © 2011-2022 走看看