首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
算法习题---5-4交换学生(UVa10763)
】的更多相关文章
算法习题---5-4交换学生(UVa10763)
一:题目 有一组学生,他们手中分别有自己学校和想要去的目标学校(A,B).为了成功的交换学生,必须保证这一组学生中必须每两个人之间满足 s1 (A,B) 和 s2 (B,A).即两者原来和目标学校相对应,可以实现交换 (一)样例输入 (二)样例输出 YES NO 二:代码实现 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <vector> #include <map> using namespa…
【算法习题】数组中任意2个(3个)数的和为sum的组合
题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4, 7, 8, 9, 10 }; int sum = 9; Arrays.sort(arr); List<TwoTuple<Integer, Integer>> result = new ArrayList<>(); int i = 0; int j = arr.lengt…
UVA10763 交换学生 Foreign Exchange 题解
题目链接: https://www.luogu.org/problemnew/show/UVA10763 题目分析: 本题我首先想到的做法是把每一个数都map一下,然后互相判断,例如a,b两人准备交换,那么m[a]=b,m[b]=a,最后再判断如果m[m[a]]=a就行,但是因为一个学生在双方都同意的情况下可以先后与多个学生交换,所以我的做法是: 先把每对学生都按照先小后大的顺序排好 if(a[i].x>a[i].y)swap(a[i].x,a[i].y); 然后把所以学生交换对都进行排序 so…
交换学生 (Foreign Exchange,UVa10763)
题目描述: 解题思路: 开一个数组,读入一次交换两个数,如果最后数组不变,即符合匹配 #include<iostream> #include<cstdio> #include<string> #include<algorithm> #define MAXN 500005 using namespace std; int arr[MAXN]; void swap(int a,int b){ int t=arr[a]; arr[a] = arr[b]; arr[…
算法习题---4-8特别困的学生(UVa12108)
一:题目 课堂上有n个学生(n<=),每个学生上课都会出现一个“清醒-睡眠”周期,其中第i个学生学习Ai分钟后睡眠Bi分钟,依次重复.其中在从清醒到睡眠时有一个条件:只有到全班睡眠人数大于清醒人数时,这个学生才敢睡觉. 题目使用(A,B,C)来描述一个学生的信息,A是该学生的清醒时间,B是该学生的睡眠时间,C是该学生的初始状态值(即在初始时是这个周期的第几分钟) 问经过多久,所有人都清醒,当然也可能不存在这个时间,就输出-. (一)案例详解 学生人数 清醒2分钟 睡眠4分钟 初始状态是在周期第1…
UVA10763交换学生
题意: 给你N组关系,每组关系是a,b,最后问你所有的a,b出现的次数和所有的b,a出现的此时是否全部都一样. 思路: 水题,直接开了个二维的map标记,map<int ,map<int ,int> >mark,最后在检查一遍是否所有的mark[a][b] == mark[b][a],就ok了. #include<map> #include<stdio.h> using namespace std; map<int ,map&l…
July 算法习题 - 字符串4(全排列和全组合)
https://segmentfault.com/a/1190000002710424 思想:当前层各节点首元素不同,则各节点的剩余元素也不同:下一层节点交换范围为首元素以外的元素 全排列算法: void swap(char *a, int i, int j){ char tmp = a[i]; a[i] = a[j]; a[j] = tmp; } void permutation(char *a, int from, int to){ ) return; if (from == to){ st…
算法习题-FFT
Q1(hdu1402): 给出两个很大的数字A,B,计算二者乘积. 分析:这个题目java应该能过,用FFT做能够加速计算.这里将字符串A按权(10进制)展开,前面的系数就是多项式的系数,这样就构造出了多项式乘积形式,然后用FFT加速即可. 参考代码如下: #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <math.h>…
算法习题---4-9数据挖掘(Uva1591)
一:题目 这是最懵逼的一道题,什么鬼......... [刷题]算法竞赛入门经典(第2版) 4-9/UVa1591 - Data Mining(详细题目看这个吧,不想多说) 二:代码实现 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string> unsigned int N, Sp, Sq, A_min, B_min; //1<= N <=…
算法习题---4-4骰子涂色(UVa253)
一:题目 分别对两个骰子的六个面涂色r-红 b-蓝 g-绿,通过转动骰子,看两个骰子是不是一样的涂色方法 (一)题目详解 题目规定了正方体的六个面的序号:从1-,按照这个需要提供涂色序列 (二)案例展示 上面是提供的两个骰子,我们将第二个骰子向右转90度(一个面),可以得到第一个骰子的样式.故输出TRUE (三)样例输入 rbgggrrggbgr //一共3局,每一行是一局,前六个字母是对应第一个骰子,后六个字母对应第二个骰子 rrrbbbrrbbbr rbgrbgrrrrrg (四)样例输出…