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语句练习题
随机推荐
- IPFS挖矿靠谱吗?
IPFS是一个旨在创建持久且分布式存储和共享文件的网络传输协议,前景广阔且实用意义大,为区块链行业提供了一种新的可能.而IPFS挖矿挖出的FIL,则是在IPFS技术的基础上,对维护IPFS网络的用户的 ...
- Cai Xukun and Orz Pandas Gym - 102309C
题目链接:https://vjudge.net/problem/Gym-102309C 题意:给定蔡徐坤投篮的位置和篮筐的位置以及最大初速度,求一个初速度和时间. 思路:一开始我以为要用到二分,后面仔 ...
- 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:
"/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...
- 《Selenium自动化测试实战:基于Python》之 Selenium IDE插件的安装与使用
第3章 Selenium IDE插件的安装与使用 京东:https://item.jd.com/13123910.html 当当:http://product.dangdang.com/292045 ...
- 一种3位sar adc工作过程推导(二)
3位sar adc采用下图的电容阵列,需要23个电容,它的基本单元有二进制加权的电容阵列.1个与LSB电容等值的电容:它利用电容上的初始电荷再分配完成二进制搜索算法,因此功耗一般比较小,而且不需要额外 ...
- Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置
Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Nacos支持三种部署模式 单机模式 - 用于测试 ...
- Istio安全-证书管理(实操一)
Istio安全-证书管理 目录 Istio安全-证书管理 插入现有CA证书 插入现有证书和密钥 部署Istio 配置示例services 校验证书 卸载 Istio的DNS证书管理 DNS证书的提供和 ...
- 系统编程-网络-tcp客户端服务器编程模型(续)、连接断开、获取连接状态场景
相关博文: 系统编程-网络-tcp客户端服务器编程模型.socket.htons.inet_ntop等各API详解.使用telnet测试基本服务器功能 接着该上篇博文,咱们继续,首先,为了内容的完整性 ...
- SpringBoot整合阿里云OSS对象存储实现文件上传
1. 准备工作: 一.首先登录阿里云OSS对象存储控制台创建一个Bucket作为你的存储空间. 二.创建Access Keyan按要求创建进行,这里的方法步骤我就不展现出来了,你们可以自行查询阿里云文 ...
- Linux 查看GPU状态
Linux 查看GPU状态 nvidia-smi nvidia-smi是NVIDIA自带的一个命令可以详细的展示显卡的运行状态. gpustat gpustat是github上开源的一个小工具,对于v ...