2020.04.05 个人赛

题目:Opposites Attract

题目链接:https://vjudge.net/problem/CodeForces-131B

题目大意:

给出n个数,在这些数中若有成对相反数,则可以进行组合,数字可重复使用,0与0也可组合,问有多少种组合。

思路:

记录每个数出现的次数,可以用map,也可用桶(因为给出的数范围不大)。

解题代码:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <cmath>
 5 #include <string>
 6 #include <cstring>
 7 #include <map>
 8 using namespace std;
 9 const long long N = 1e9 + 7;
10 typedef long long ll;
11 map <char,int> ma;
12 ll a[110];
13 ll b[110];
14 int main()
15 {
16     ll sum = 0;
17     ll n,num0 = 0,t;
18     cin >> n;
19     for(int i = 0;i < n;i++)
20     {
21         cin >> t;
22         if(t > 0)
23             a[t]++;
24         else if(t < 0)
25             b[abs(t)]++;
26         else
27             num0++;
28     }
29     for(int i = 1;i <= 10;i++)
30     {
31         if(a[i] && b[i])
32         {
33
34             sum += a[i] * b[i];   //int*int 会爆,所以数组定义ll,被这个地方坑死了。
35             a[i] = 0;
36             b[i] = 0;
37         }
38     }
39     if(num0 > 1)
40         sum += num0 * (num0-1) / 2;
41     cout << sum << endl;
42
43     return 0;
44 }

题目:Permutations

题目链接:https://vjudge.net/problem/CodeForces-124B

题目大意:

给出n个k位数,可以通过交换数位(一旦交换,所有是数都要交换数位),求出最大值与最小值的差最小的情况。

5237      交换前两位    25372753  --------------->  7253

思路:

利用next_permutation,进行全排列,不断更新最小值就可。

解题代码:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <cmath>
 5 #include <string>
 6 #include <cstring>
 7 #include <map>
 8 using namespace std;
 9 const long long N = 1e8 + 7;
10 typedef long long ll;
11 map <char,int> ma;
12 int x[8] = {0,1,2,3,4,5,6,7};  //因为题目上说了位数最大8位。
13 string s[10];
14 int main()
15 {
16     int n,k,minnum = N;
17     cin >> n >> k;
18     for(int i = 0;i < n;i++)
19         cin >> s[i];
20     do
21     {
22        int num[10] = {0};
23        for(int i = 0;i < n;i++)
24        {
25            for(int j = 0;j < k;j++)
26            {
27                num[i] *= 10;
28                num[i] += s[i][ x[j] ] - ‘0‘;
29            }
30
31        }
32        sort(num,num+n);
33        minnum = min(minnum, num[n-1] - num[0]);
34     }while(next_permutation(x,x+k));
35
36     cout << minnum << endl;
37     return 0;
38 }

原文地址:https://www.cnblogs.com/emhhbw/p/12653623.html

时间: 2024-10-29 13:30:51

2020.04.05 个人赛的相关文章

QFNU-ACM 2020.04.05个人赛补题

A.CodeForces-124A (简单数学题) #include<cstdio> #include<algorithm> #include<iostream> #include<cmath> using namespace std; int main(){ int a,b,n; scanf("%d %d %d",&n,&a,&b); if((n-a)>b){ printf("%d",b

MFC DAY03 04 05

一 MFC的消息映射机制(3) 1 消息映射机制的使用 1.1 自己的类必须派生自 CCmdTarget 1.2 自己的类内 必须添加声明宏 DECLARE_MESSAGE_MAP 1.3 自己的类外 必须添加实现宏 BEGIN_MESSAGE_MAP( theClass, baseClass ) END_MESSAGE_MAP( ) 2 消息映射机制的实现 2.1 数据结构 struct AFX_MSGMAP_ENTRY (静态数组的每个元素) { UINT nMessage; // 消息ID

shell 如何生成一个序列 01 02 03 04 05

seq 命令介绍 用途: seq - print a sequence of numbers 语法: seq [OPTION]... LAST seq [OPTION]... FIRST LAST seq [OPTION]... FIRST INCREMENT LAST 常用选项 -s, --separator=STRING use STRING to separate numbers (default: \n) -w, --equal-width equalize width by paddi

毕设进度2020.02.05

毕设进度2020.02.05 继续建立数据库和基础代码: 新闻数据库 政策数据库 原文地址:https://www.cnblogs.com/liurx/p/12267248.html

2020/03/05 生成模型&amp;生成学习(Generative Learning)的流程

在之前的学习2020/01/02 深度学习数学基础学习--朴素贝叶斯中,大概的了解了生成学习的原理,但是对算法实现的 完整流程 不够清晰,所以今天想通过对生成学习回顾,明确一下生成学习的流程框架. 学习资料:斯坦福CS229-note2-Generative Learning algorithms的1.2节 必要的概念 类别先验概率: \(P(c)\) 类条件概率: \(P(\vec x | c)\) ,其中\(\vec x=(x_{1},x_{2},...,x_{m}); m为属性\),\(\

2017/04/05学习笔记

栈的应用 案例1:就近匹配几乎所有的编译器都具有检测括号是否匹配的能力如何实现编译器中的符号成对检测?#include <stdio.h> int main(){int a[4][4];int (*p)[4];p =a[0];return ;算法思路从第一个字符开始扫描当遇见普通字符时忽略当遇见左符号时压入栈中当遇见右符号时从栈中弹出栈顶符号,并进行匹配匹配成功:继续读入下一个字符匹配失败:立即停止,并报错结束:成功:所以字符扫描完毕,且栈为空失败:匹配失败或所有字符扫描完毕但栈非空当需要继承

2020.02.05总结

今天主要补了昨天打的区域赛和cf的题,复习并学习了二分图匹配. 觉得之前学二分图是并没有学太懂,现在去写题不能完全的写出来. 这段时间主要好好学习下图论,每次打比赛的时候遇到图论题就很烧脑. cf补题:https://www.cnblogs.com/zcb123456789/p/12264411.html 区域赛补题:https://www.cnblogs.com/zcb123456789/p/12264350.html 每日一题:https://www.cnblogs.com/zcb12345

2020.02.05 Ajax请求的安全

Ajax请求的安全 AJAX请求真的不安全么 AJAX请求是否安全,由服务端(后台)决定 如果某个Web应用具备良好的安全性,那么再怎么用"不安全的AJAX"也削弱不了它的安全性,反之如果应用本身存在漏洞,不管用何种技术请求,它都是不安全的 为何会有这种说法?因为在Web应用中,客户端输入不可信是一个基本原则 常见的几种Web前端安全问题 要知道AJAX请求是否安全,那么就得先知道Web前端中到底有那几种安全问题 XSS(跨站脚本攻击)(cross-site scripting) 伪造

程序员面试金典-面试题 04.05. 合法二叉搜索树

题目: https://leetcode-cn.com/problems/legal-binary-search-tree-lcci/ 实现一个函数,检查一棵二叉树是否为二叉搜索树. 示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4  / \  3 6输出: false解释: 输入为: [5,1,4,null,null,3,6].  根节点的值为 5 ,但是其右子节点值为 4 . 分析: 两种做法,利用二分搜索树中序遍历的性质,节点val值的顺序应该是严格