1.F - Three displays

题意:就是给出了两个数组,然后第一组数中找到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的更多相关文章

  1. [转]如何解决: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 ...

  2. Trusted Block Chain Summit(2018.10.09)

    时间:2018.10.09地点:北京金隅喜来登大酒店

  3. datetime 2017-10-21 10:09:02.560 转年月日的时间类型

    sql语句时间转年月日格式: 适用于多种时间格式 select  REPLACE(STUFF(CONVERT(char(10), REPLACE(CONVERT(varchar(10),'2017-1 ...

  4. Cheatsheet: 2013 10.09 ~ 10.23

    Other 10 Basic Linux Networking and Monitoring Commands You Should Know A simple, portable yet effic ...

  5. ETL工具--kettle篇(17.10.09更新)

    ETL是EXTRACT(抽取).TRANSFORM(转换).LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环也是工作量较大的一块.当前知道的 ...

  6. 可能是东半球第二好用的软件工具全部在这里(update in 2020.10.09)

    1. 产品经理工具种草 浏览器:Google Chrome 网络浏览器 原型绘制软件:墨刀- 在线产品原型设计与协作平台(https://modao.cc/).摹客mockplus - 摹客,让设计和 ...

  7. QFNU 10-02 19 training

    B - Yet Another Crosses Problem 题意:找如果使图中某一行某一列全部变成黑色,至少需要把多少个白方格变成黑方格 思路:直接找就可以,注意存储的时候要记得进行分开存储,存储 ...

  8. Cheatsheet: 2013 09.10 ~ 09.21

    .NET Lucene.Net – Custom Synonym Analyzer Using FiddlerCore to Capture Streaming Audio Immutable col ...

  9. 2014.10.09 Andrew 学习 WPF(刘铁锰) 笔记分享

    引言 主要是讲了关于WPF只是表现层的工具. 第一章: XAML : 可扩张应用程序标记语言    Extensible Application Markup Language 什么是XAML?  X ...

  10. (10.09作业)学生选课数据库SQL语句练习题

随机推荐

  1. SparkSQL中产生笛卡尔积的几种典型场景以及处理策略

    [前言:如果你经常使用Spark SQL进行数据的处理分析,那么对笛卡尔积的危害性一定不陌生,比如大量占用集群资源导致其他任务无法正常执行,甚至导致节点宕机.那么都有哪些情况会产生笛卡尔积,以及如何事 ...

  2. PTA 二叉树的层次遍历

    6-6 二叉树的层次遍历 (6 分)   本题要求实现给定的二叉树的层次遍历. 函数接口定义: void Levelorder(BiTree T); T是二叉树树根指针,Levelorder函数输出给 ...

  3. 自动QQ邮箱发送邮件

    语言:python 参考:https://www.runoob.com/python/python-email.html 前提: 1.QQ邮箱开启了SMTP服务 2.生成了授权码,这个授权码将作为自己 ...

  4. OO_Unit2 关于性能优化与测试的那些事

    OO_Unit2 关于性能优化与测试的那些事 OO的第2单元到本周也就正式完结了.尽管这个单元的主旋律是多线程,但"面向对象"的基本思想仍然是我们一切架构与优化的出发点与前提.因此 ...

  5. 消息中间件-ActiveMQ支持的消息协议

    package com.study.mq.a1_example.helloworld.queue; import org.apache.activemq.ActiveMQConnectionFacto ...

  6. Array.prototype.fill 填充值被复用的问题

    考察如下示例代码: // 创建二维数组 const arr = Array(2).fill([]); // 操作第一个元素 arr[0].push(1); // 结果是操作了所有数组 console. ...

  7. 请使用管理员权限执行pip install命令

    重要的事情说三遍! 请使用管理员权限执行pip install命令 请使用管理员权限执行pip install命令 请使用管理员权限执行pip install命令 踩坑记录 当时一切还是从一题Misc ...

  8. 解决JDK9以上的非法反射访问警告

    1 问题描述 JDK9以上很多库都有这种非法反射访问的警告,比如protostuff: 解决方法两个: JDK降级 添加JVM参数 2 原因 降到JDK8能解决以上问题. 但是这不是本文的重点. 先说 ...

  9. Kubernetes查看可用的apiVersion版本

    命令: kubectl api-versions

  10. Tony老师带你来看Java设计模式:代理模式

    目录 定义 作用 意图 主要解决问题 优缺点 与装饰者模式的区别 结构 从Tony老师来看实现方式 静态代理 动态代理 JDK动态代理的实现 cglib动态代理的实现 定义 为其他对象提供一种代理来控 ...