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\n",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\n",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;
}
1.21 贪心入门上午PAT例题题解的更多相关文章
- PAT甲级题解(慢慢刷中)
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- POJ3614 Sunscreen 贪心入门
题目大意 给出一些区间和一些点,一个点如果在一个区间内,那么此两者可以匹配.问匹配数最大是多少. 题解 这样的题我们一般都是站在区间上去找与其配对的点.我们可以得到如下性质: 对于一段区间\([l_1 ...
- PAT 1031-1040 题解
早期部分代码用 Java 实现.由于 PAT 虽然支持各种语言,但只有 C/C++标程来限定时间,许多题目用 Java 读入数据就已经超时,后来转投 C/C++.浏览全部代码:请戳 本文谨代表个人思路 ...
- pat甲级题解(更新到1013)
1001. A+B Format (20) 注意负数,没别的了. 用scanf来补 前导0 和 前导的空格 很方便. #include <iostream> #include <cs ...
- hdu2037 经典贪心入门
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- 浙大pat 1035题解
1035. Password (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To prepare f ...
- 浙大pat 1025题解
1025. PAT Ranking (25) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...
- 浙大 pat 1007题解
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to be { Ni, ...
- 浙江大学Pat 1036 题解
1036. Boys vs Girls (25) This time you are asked to tell the difference between the lowest grade of ...
随机推荐
- Spring 源码阅读之BeanFactory
1. BeanFactory 的结构体系如下: 2. XmlBeanFactory ,装载Spring配置信息 package org.springframework.beans.factory.xm ...
- Linux 上安装MyEclipse
操作系统ubuntu14.04,亲测安装MyEclipse2014成功,且破解成阿功.在安装myeclipse之前,您当然需要安装jdk了,jdk在这里不做介绍 下载 下载linux版本的MyEcli ...
- 1066. [SCOI2007]蜥蜴【最大流】
Description 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃 到边界外. 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到 ...
- 【CF809E】Surprise me!
题目 这是一道神仙题 看到这样一个鬼畜的柿子 \[\sum_{i=1}^n\sum_{j=1}^n\varphi(a_i\times a_j)\times dis(i,j)\] 又是树上距离又是\(\ ...
- Day10 MVC
经典三层 表述层(表示层): 前台交互,调用后台 web 业务逻辑层: 处理业务 service 数据持久层: 与数据库之间进行交互 dao 面向对象原则 面 ...
- Vmware10组建局域网
Vmware10组建局域网很简单,特别是用Ubuntu16.04作为操作系统,基本上按照如下步骤来,是不会出现问题的. 1.首先,启动虚拟机,选择“编辑”->“虚拟网络编辑器” 2.改为桥接模式 ...
- 多线程之CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch ...
- 再起航,我的学习笔记之JavaScript设计模式05(简单工厂模式)
我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 前几 ...
- pdf转中文txt
最近项目需要实现根据关键字搜索pdf内容,实现思路就是提取pdf文本,然后进行索引. 工具上选择: IText 4.16之后采用agpl License,不能用作商用,而且转换中文会有乱码问题, pd ...
- 20155236范晨歌 Exp1PC平台逆向破解及Bof基础实践
出现的问题及解决: 在下载execstack时,出现了下列签名无效的错误! 解决方案:发现是密钥过期了,将新的密钥填入apt-keyring 输入命令:apt-key adv --keyserver ...