Ambiguous Dates Gym-101522A
来源:互联网 发布:淘宝怎么看行业排名 编辑:程序博客网 时间:2024/06/11 02:45
Ambiguous Dates Gym-101522A
标签:思维&逻辑
题目链接
解法一
/* 题意:日期有两种表示day/month/year 或 month/day/year, 7/8/2017(8/7/2017)是引起歧义的, 而15/8/2017和10/10/2017则不会, 要求重新排列月份,使得引起歧义的日期最少, 一年可以有M月(1 <= M <= 10^5),每月有D天(1 <= D <= 10^5)。 分析:某个月份的天数越多,这个月就应该越靠后。排序后,计算引起歧义的日期数量即可。*/#include <stdio.h>#include <algorithm>using namespace std;#define maxn 100005int month[maxn], M;int main(){ while(scanf("%d", &M) != EOF){ int i, top = 1; __int64 num = 0, ans = 0; for(i = 1; i <= M; i++) scanf("%d", &month[i]); sort(month + 1, month + M + 1); for(i = 1; i <= M; i++) if(month[i] > i) ans += 2 * min(month[i] - i, M - i); printf("%lld\n", ans); } return 0;}
解法二
#include <stdio.h>#include <algorithm>using namespace std;#define maxn 100005int month[maxn], M;int main(){ while(scanf("%d", &M) != EOF){ int i, top = 1; __int64 num = 0, ans = 0; for(i = 1; i <= M; i++) scanf("%d", &month[i]); sort(month + 1, month + M + 1); for(i = 1; i <= M; i++){ while(i != 1 && top < i && month[top] < i){ top++; num--; } //printf("num: %d\n", num); ans += num; num++; } printf("%lld\n", ans * 2); } return 0;}
阅读全文
0 0
- Ambiguous Dates Gym-101522A
- JOJ 1042: Ambiguous Dates
- ZOJ 1033 Ambiguous Dates (简单搜索)
- [La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017]Ambiguous Dates
- Dates
- Gym 100015A
- codeforces gym 100645A
- CodeForces Gym 100803A
- Gym 100543A Parades
- Gym 100962A ABBA
- codeforces Gym 101102A
- Codeforces Gym 100372A
- 【Codeforces Gym 100187A】
- Gym 101147.A
- Gym 100273A Ants
- How do I create a time-series object with dates?
- Gym 100339A Bike Roads
- Gym 100917 A. Abstract Picture
- unity 长按一个Cube的学习
- Session
- 网狐荣耀版棋牌游戏登录异常签名错误
- 天天学Linux命令57--at命令
- spark平台搭建
- Ambiguous Dates Gym-101522A
- 验证 查询 添加
- java4
- win7/python3.5/tensorflow ImportError: DLL load failed: 找不到指定的模块
- Android 8
- pic16f877外设源码
- struts2 与 springmvc 的区别
- [巴什博奕]HDU 2147——kiki's game
- C语言程序设计现代方法(第二版)_______第二、三、四章编程题部分