CodeForces NO.629B Far Relative’s Problem
2016-02-21 15:05
225 查看
问题描述:
Famil Door这个货要举办一个生日party,然后知道他有n个朋友(分男女)分别在某个区间内有时间可以参加party.
问要在那一天去邀请他的朋友使的来的朋友最多并且男女数相等。
题目链接:CodeForces NO.628B
思路:
用两个单独的数组,f[ i ] and m[ i ]表示女生和男生在i 天可以到来的人数。遍历数组不断取在 i 天min( f[i], m[i] )*2 的最大值即可。
代码:
Famil Door这个货要举办一个生日party,然后知道他有n个朋友(分男女)分别在某个区间内有时间可以参加party.
问要在那一天去邀请他的朋友使的来的朋友最多并且男女数相等。
题目链接:CodeForces NO.628B
思路:
用两个单独的数组,f[ i ] and m[ i ]表示女生和男生在i 天可以到来的人数。遍历数组不断取在 i 天min( f[i], m[i] )*2 的最大值即可。
代码:
#include<iostream> #include<algorithm> #include<cstdio> #include<cstdlib> #include<cmath> #include<queue> #include<stack> #include<cstring> #include<string> #include<vector> #include<set> using namespace std; #define X first #define Y second #define PI 3.1415926 const int MAX = 101000; const int INF = 0x3f3f3f3f; struct node{ char z; int x, y; }; int main(){ int n, day = 600; int f[day], m[day]; memset(f, 0, sizeof(f)); memset(m, 0, sizeof(m)); node arr[MAX]; cin >> n; for(int i = 0; i < n; i++){ cin >> arr[i].z >> arr[i].x >> arr[i].y; } for(int i = 0; i < n; i++){ for(int j = arr[i].x; j <= arr[i].y; j++){ if(arr[i].z == 'F') f[j]++; else if(arr[i].z == 'M') m[j]++; } } int ans = 0; for(int i = 1; i < day; i++){ if(ans < 2 * min(f[i],m[i])) ans = 2 * min(f[i],m[i]); } cout << ans << endl; return 0; }
相关文章推荐
- Objective-C Runtime
- 一起做RGB-D SLAM 第二季 (一)
- 格式化日期时间的显示
- 树和递归(一)[leetcode]Balanced Binary Tree
- 机器学习课程 - 概述(standrod课程)
- PAT1029旧键盘
- Android真机调试试验
- HTML 事件(二) 事件的注册与注销
- Are They Equal (25)
- css3实现动画效果(transform translation @keyframes)
- Qt Question List
- [leetcode] 43. Multiply Strings 解题报告
- 大数据工具——Splunk
- 正确使用C++引用做返回值和参数
- CSS 三角形绘制方法
- 234. Palindrome Linked List
- MongoDb的基本使用以和关系性数据库的基本差异
- Struts2 用DomainModel接收参数
- 网站概况分析可以认为是网站的“五官”检测
- android下数据库的创建