【刷题记录】GCJ 2.71~2.72
GCJ 271
【题目大意】
Minimum Scalar Product
有两个东西(滑稽)v1=(x1,x2,x3,……,xn)和v2=(y1,y2,……yn),允许任意交换v1和v2中各数字的顺序。
请计算x1y1+……+xnyn的最小值
【输入样例(第一行为n,第二行为v1,第三行为v2)】
3
1 3 -5
-2 4 1
【输出样例(直接输出最小值)】
-25
【数据范围】
稍微大一点的:100<=n<=800 -100000<=x1,y1<=100000
【解题思路】
直接暴力sort一下v1和v2,最后计算v1[i]*v2[n-i-1]即可
【代码】
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn=801;
int n;
int v1[maxn],v2[maxn];
int main()
{cin>>n;for(int i=0;i<n;i++) cin>>v1[i];for(int i=0;i<n;i++) cin>>v2[i];sort(v1,v1+n);sort(v2,v2+n);ll ans=0;for(int i=0;i<n;i++) ans+=(ll)v1[i]*v2[n-i-1];cout<<ans<<endl;return 0;
}
GCJ 272
【题目大意】
Crazy Rows(2009 Round2 A题)(滑稽)
给定一个由0和1组成的矩阵。只允许交换相邻的两行(第i行和第i+1行),要把矩阵化成下三角矩阵(主对角线上方的元素都为0),问最少需要交换几次?数据保证合法。
【输入样例(第一行为n代表有一个n*n的矩阵,下面n行为矩阵)】
4
1110
1100
1100
1000
【输出样例(直接输出代价)】
4
【数据范围】
稍微大一点的:4<=n<=40
【解题思路】
N!肯定不行
我们就先把第一行确定,第一行必须是“1000000……000”或“00000……0000”的形式。所以我们把矩阵中符合这种形式的行中代价较小的放到第一行。
下一行像处理第一行一样处理,现在复杂度为O(n^3)
接着,我们预先计算最终矩阵每行最后一个1所在的位置即可,现在复杂度变成了n方……
【代码】
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
int n;
char a[50];
int b[50];
bool used[50];
int main()
{int n;cin>>n;for(int i=0;i<n;i++){b[i]=-1;used[i]=false;cin>>a;for(int j=n-1;j>=0;j--){if(a[j]=='1'){b[i]=j;break;}}}int s=0;for(int i=0;i<n;i++){int ans=-1;for(int j=i;j<n;j++){if(b[j]<=i){ans=j;break;}}for(int j=ans;j>i;j--){swap(b[j],b[j-1]);s++;}}cout<<s;return 0;
}
转载于:https://www.cnblogs.com/lijiaxin-blog-cpp/p/6148224.html
【刷题记录】GCJ 2.71~2.72相关推荐
- Codeforces 刷题记录(已停更)
Codeforces 每日刷题记录 (已停更) 打'+'是一些有启发意义的题目,部分附上一句话题解,每日更新3题,大部分题目较水. Day ID Problem Tutorial Note 1 1 + ...
- BZOJ刷题记录---提高组难度
BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...
- Pythontip刷题记录
pythontip 刷题记录 11.给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数.(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大). 不能直接相乘会太大了,分解质因数,去找2 ...
- 重走长征路---OI每周刷题记录---9月21日 2013 AC 17题
总目录详见https://blog.csdn.net/mrcrack/article/details/84471041 做题原则,找不到测评地址的题不做.2018-11-28 重走长征路---OI每周 ...
- 力扣刷题记录--哈希表相关题目
当遇到需要快速判断一个元素是否出现在集合里面的时候,可以考虑哈希法,牺牲一定的空间换取查找的时间. java常用的哈希表有HashMap.HashSet以及用数组去模拟哈希,这几种方法各有优劣. 数组 ...
- Python刷题记录(81-90)
Python刷题记录(81-90) 题目来源PTA平台 PAT (Basic Level) Practice (中文) @TOC 1081 检查密码 本题要求你帮助某网站的用户注册模块写一个密码合法性 ...
- LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) 目录 LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) ...
- LeetCode刷题记录14——257. Binary Tree Paths(easy)
LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...
- LeetCode刷题记录13——705. Design HashSet(easy)
LeetCode刷题记录13--705. Design HashSet(easy) 目录 LeetCode刷题记录13--705. Design HashSet(easy) 前言 题目 语言 思路 源 ...
- LeetCode刷题记录12——232. Implement Queue using Stacks(easy)
LeetCode刷题记录12--232. Implement Queue using Stacks(easy) 目录 LeetCode刷题记录12--232. Implement Queue usin ...
最新文章
- XMPP通讯开发-好友获取界面设计
- 湘源控规8.0_湘源控规8.0新版本发布
- 知识工场 | 知识图谱暑假班开始报名啦!
- 数学图形(1.42)拱形曲线
- html js坐标图,javascript – HTML5 Canvas沿着带坐标的路径拖动图像
- 学妹,你要的C语言版AOE网络数据结构来了,就这么简单!
- 蓝牙连接不上车要hfp_鹅厂又要霸屏,连接四部剧将袭,冲着主创颜值不追不行啦...
- mamcache登录、_gomemcache首页、文档和下载 - memcache客户端库 - Go语言中文网 - Golang中文社区...
- Airflow 中文文档:Lineage
- 地图点击区域高亮 vue_这个Excel技巧很强大,鼠标点击即高亮显示数据区域
- SpringBoot配置redis
- FTA故障树分析法-DFMEA的另外一张脸
- Ubuntu 20.04安装搜狗输入法(图文详解)
- linux用户权限不够解析及解决方案
- Swiper.js实现无缝滚动
- 2022年熔化焊接与热切割考试题模拟考试题库及模拟考试
- matlab中怎么画冲激函数,matlab怎么画冲激函数波形,这些知识你不一定知道
- 一次惨痛的线下机房上云的经历
- 【android studio】安卓实现mysql数据库登录、注册、重置密码。
- 知星社:学会了什么?
热门文章
- 《恋上数据结构第1季》平衡二叉搜索树、AVL树
- Linux系统发行版本介绍(一)——CentOS介绍
- OracleOraDb11g_home1TNSListener 服务启动后停止 某些服务在未由其他服务或程序使用时将自动停止
- 对于模拟交易所引发的思考
- 最不适合做数据分析的6种性格,看看你占了几个?
- linux opencv移植教程,OpenCV在Ubuntu和Linux系统下的移植
- 刘宏伟计算机组成,哈工大组成原理和数据结构 ppt 计算机组成原理刘宏伟 版本一 第18讲...
- java的适配器的情形_Java设计模式之适配器模式(Adapter)
- 大楼通信综合布线系统_建筑智能化,智能大楼防雷系统设计在综合布线中的重要性...
- python web框架哪个好_盘点:9款流行Web框架及其优缺点