QFNU 10-09 training
题意:就是给出了两个数组,然后第一组数中找到i,j,k满足i<j<k,第二组数中找到a[i],a[j],a[k],满足a[i]<a[j]<a[k],问找到这两组数之后,最小的a[i]+a[j]+a[k]的值是多少
思路:直接进行遍历寻找即可,从第一个for循环中进行两个不同的for循环,找到其左边和右边最小的值
代码:


1 #include<iostream>
2 #include<algorithm>
3 #include<cmath>
4 #include<cstring>
5 #include<cstdio>
6 using namespace std;
7 int main(){
8 int n;
9 scanf("%d",&n);
10
11 int s[n+2];
12 int c[n+2];
13 for(int i=0;i<n;i++){
14 scanf("%d",&s[i]);
15
16 }
17 for(int i=0;i<n;i++){
18
19 scanf("%d",&c[i]);
20
21 }
22 long long int minn=1000000000;
23 int flag1=0,flag2=0;
24 int f,ff;
25 for(int i=1;i<n-1;i++){
26
27 long long int minn1=1000000000,minn2=1000000000;
28
29 for(int j=0;j<i;j++){
30 if(s[j]<s[i]&&(c[i]+c[j])<minn1){
31 minn1=c[i]+c[j];
32 flag1=1;
33 f=j;
34 }
35 }
36 for(int j=i+1;j<n;j++){
37 if(s[i]<s[j]&&c[j]<minn2){
38 minn2=c[j];
39 flag2=1;
40 ff=j;
41 }
42 }
43 if((minn1+minn2)<minn&&flag1==1&&flag2==1){
44
45 minn=minn1+minn2;
46 }
47 }
48 if(minn==1000000000){
49 printf("-1\n");
50 }else{
51 printf("%lld",minn);
52 }
53
54 }
2.链表去重
思路:输入链表的元素之后,用另一个数组将其分开,直接按照key是否重复分成x与y组,进行存贮其address即可,再通过格式要求进行输出
代码:


1 #include<iostream>
2 #include<cstdio>
3 #include<cmath>
4 #include<algorithm>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e6+2;
8 struct num{
9 int address,key,next;
10 int num=4;
11 }a[maxx],p[maxx];
12 int sum[maxx]={0};
13 int x[maxx],y[maxx];
14 int main(){
15 int start,n;
16 scanf("%d %d",&start,&n);
17 int starti=start;
18 for(int i=0;i<n;i++){
19 int address=0;
20 scanf("%d",&address);
21 scanf("%d %d",&p[address].key,&p[address].next);
22 }
23 int i=0;
24 int j1=0,j2=0;
25 while(starti!=-1){
26 int s=fabs(p[starti].key);
27 if(sum[s]==0){
28 sum[s]++;
29 x[j1]=starti;
30 j1++;
31 }else{
32 y[j2]=starti;
33 j2++;
34 }
35 starti=p[starti].next;
36 }
37
38
39 for(int i=0;i<j1-1;i++){
40 printf("%05d %d %05d\n",x[i],p[x[i]].key,x[i+1]);
41 }
42 printf("%05d %d -1\n",x[j1-1],p[x[j1-1]].key);
43 for(int i=0;i<j2-1;i++){
44 printf("%05d %d %05d\n",y[i],p[y[i]].key,y[i+1]);
45 }
46 if(j2>=1){
47 printf("%05d %d -1\n",y[j2-1],p[y[j2-1]].key);
48 }
49 }
3.部落
思路:用并查集找到根节点,并且给他们进行合并,然后再进行寻找根节点是否是同一个
代码:


1 #include<iostream>
2 #include<cstdio>
3 #include<algorithm>
4 #include<cmath>
5 using namespace std;
6 const int maxx=1e5;
7 int fa[maxx];
8 int findd(int x){
9 if(x==fa[x]){
10 return x;
11 }else{
12 return fa[x]=findd(fa[x]);
13 }
14 }
15 void unionn(int x,int y){
16 int xx=findd(x);
17 int yy=findd(y);
18 if(xx!=yy){
19 fa[xx]=yy;
20 }
21 }
22 int main(){
23 int n;
24 scanf("%d",&n);
25 for(int i=0;i<maxx;i++){
26 fa[i]=i;
27 }
28 int maxxx=0;
29 while(n--){
30 int k;
31 scanf("%d",&k);
32 int y;
33 scanf("%d",&y);
34 maxxx=max(maxxx,y);
35
36 for(int i=0;i<k-1;i++){
37 int x;
38 scanf("%d",&x);
39 maxxx=max(maxxx,x);
40 unionn(y,x);
41 }
42 }
43 int sum=0;
44 for(int i=1;i<=maxxx;i++){
45 if(fa[i]==i){
46 sum++;
47 }
48 }
49 printf("%d %d\n",maxxx,sum);
50 int kk;
51 scanf("%d",&kk);
52 while(kk--){
53 int x,y;
54 scanf("%d %d",&x,&y);
55 if(findd(x)==findd(y)){
56 printf("Y\n");
57 }else{
58 printf("N\n");
59 }
60 }
61 }
4.月饼
思路:直接比较单价就可以
代码:


1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 struct num{
8 double numm;
9 double money;
10 double m;
11 }s[2000];
12 bool cmp(num& a,num& b){
13 return a.m>b.m;
14 }
15 int main(){
16 int n,d;
17 scanf("%d %d",&n,&d);
18 for(int i=0;i<n;i++){
19 scanf("%lf",&s[i].numm);
20 }
21 for(int i=0;i<n;i++){
22 scanf("%lf",&s[i].money);
23 s[i].m=s[i].money*1.0/s[i].numm;
24 }
25 double sum=0,ns=0;
26 sort(s,s+n,cmp);
27
28 for(int i=0;i<n;i++){
29 if(d>=s[i].numm){
30 sum+=s[i].money;
31 d-=s[i].numm;
32 }else if(d>=0){
33 sum+=s[i].m*d;
34 break;
35 }
36 }
37 printf("%.2f\n",sum);
38 }
QFNU 10-09 training的更多相关文章
- [转]如何解决:Android中 Error generating final archive: Debug Certificate expired on 10/09/18 16:30 的错误
本文转自:http://www.cnblogs.com/yyangblog/archive/2011/01/07/1929657.html 问题概述: 在导入一个app后提示如下错误: “Error ...
- Trusted Block Chain Summit(2018.10.09)
时间:2018.10.09地点:北京金隅喜来登大酒店
- datetime 2017-10-21 10:09:02.560 转年月日的时间类型
sql语句时间转年月日格式: 适用于多种时间格式 select REPLACE(STUFF(CONVERT(char(10), REPLACE(CONVERT(varchar(10),'2017-1 ...
- Cheatsheet: 2013 10.09 ~ 10.23
Other 10 Basic Linux Networking and Monitoring Commands You Should Know A simple, portable yet effic ...
- ETL工具--kettle篇(17.10.09更新)
ETL是EXTRACT(抽取).TRANSFORM(转换).LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环也是工作量较大的一块.当前知道的 ...
- 可能是东半球第二好用的软件工具全部在这里(update in 2020.10.09)
1. 产品经理工具种草 浏览器:Google Chrome 网络浏览器 原型绘制软件:墨刀- 在线产品原型设计与协作平台(https://modao.cc/).摹客mockplus - 摹客,让设计和 ...
- QFNU 10-02 19 training
B - Yet Another Crosses Problem 题意:找如果使图中某一行某一列全部变成黑色,至少需要把多少个白方格变成黑方格 思路:直接找就可以,注意存储的时候要记得进行分开存储,存储 ...
- Cheatsheet: 2013 09.10 ~ 09.21
.NET Lucene.Net – Custom Synonym Analyzer Using FiddlerCore to Capture Streaming Audio Immutable col ...
- 2014.10.09 Andrew 学习 WPF(刘铁锰) 笔记分享
引言 主要是讲了关于WPF只是表现层的工具. 第一章: XAML : 可扩张应用程序标记语言 Extensible Application Markup Language 什么是XAML? X ...
- (10.09作业)学生选课数据库SQL语句练习题
随机推荐
- Lombok 常用注解总结
本文转载自知乎专栏 极乐科技.有所整理. 主要注解 @Data @Setter @Getter @Log4j @AllArgsConstructor @NoArgsConstructor @Equal ...
- 周期串(JAVA语言)
package 第三章习题; /* * 如果一个字符可以由某个长度为k的字符串重复多次得到,则称该串以k为周期. * 例如:abcabcabcabc 以3为周期(注意:它也以6和12为周期) * ...
- Topshelf一个用于使用.NET构建Windows服务框架
1 Topshelf是什么? Topshelf是用于托管使用.NET框架编写的Windows服务的框架.服务的创建得到简化,从而使开发人员可以创建一个简单的控制台应用程序,可以使用Topshelf将其 ...
- bootstrap期末考试习题整理
1.Which is true about Bootstrap? A. Bootstrap is the most popular and powerful front-end (HTML, CSS, ...
- Ceph 14.2.5-K8S 使用Ceph存储实战 -- <6>
K8S 使用Ceph存储 PV.PVC概述 管理存储是管理计算的一个明显问题.PersistentVolume子系统为用户和管理员提供了一个API,用于抽象如何根据消费方式提供存储的详细信息.于是引入 ...
- Java中的equals()和hashCode() - 超详细篇
前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的equals()和hashCode() - 详细篇>,希望对大家有帮助,谢谢 文章纯属原创,个人总结难免有差错,如果有,麻烦在评论 ...
- Java中对象的生与灭- 核心篇
前言 大家好啊,我是汤圆,今天给大家带来的是<Java中对象的生与灭- 核心篇>,希望对大家有帮助,谢谢 文章纯属原创,个人总结难免有差错,如果有,麻烦在评论区回复或后台私信,谢啦 简介 ...
- 【源码解析】- ArrayList源码解析,绝对详细
ArrayList源码解析 简介 ArrayList是Java集合框架中非常常用的一种数据结构.继承自AbstractList,实现了List接口.底层基于数组来实现动态容量大小的控制,允许null值 ...
- 刚转行1年测试新手:学习Python编程经验实战分享
一.开头说两句 作为一名零基础转行刚一年的测试新手来说,深知自己在技术经验方面落后太多,难免会有急于求成的心态,这也就导致自己在学习新知识时似懂非懂,刚开始学完那会还胸有成竹,一段时间之后却又忘的一干 ...
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05
自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05 欢迎加QQ群:1026880196 进行交流学习 #全部节点执行如下操作 1. 安装常 ...