[刷题codeforces]650A.637A
650A |
637A |
点击查看原题
650A又是一个排序去重的问题,一定要注意数据范围用long long ,而且在写计算组合函数的时候注意也要用long long 虽然10^9没有超过long的范围,但是在计算n*(n-1)/2的过程中超了,所以需要用long long ,否则会出错。
#include<iostream> #include<cmath> #include<cstdlib> #include<cstdio> #include<algorithm> using namespace std; long n; struct Point { long x,y; }; bool cmpx(const Point &p1,const Point &p2) { if (p1.x!=p2.x) { return p1.x<p2.x; } else { return p1.y<p2.y; } } bool cmpy(const Point &p1,const Point &p2) { if (p1.y!=p2.y) { return p1.y<p2.y; } else { return p1.x<p2.x; } } long long cn2(long long n) { )/; } Point a[]; Point ax[]; ]; Point ay[]; ]; Point axy[]; ]; void mysortx(Point *a,Point *ax) { axc[]=; ; while (p<n) { ; axc[]++; ax[axc[]]=a[p]; <n && a[p+].x==a[p].x) { p++; coup++; } axc[axc[]]=coup; p++; } } void mysorty(Point *a,Point *ay) { ayc[]=; ; while (p<n) { ; ayc[]++; ay[ayc[]]=a[p]; <n && a[p+].y==a[p].y) { p++; coup++; } ayc[ayc[]]=coup; p++; } } void mysortxy(Point *a,Point *axy) { axyc[]=; ; while (p<n) { ; axyc[]++; axy[axyc[]]=a[p]; <n && a[p+].x==a[p].x && a[p+].y==a[p].y) { p++; coup++; } axyc[axyc[]]=coup; p++; } } int main() { scanf("%ld",&n); ;i<n;i++) { scanf("%ld %ld",&a[i].x,&a[i].y); } sort(a,a+n,cmpx); mysortx(a,ax); /*for (int i=1;i<=axc[0];i++) { cout <<ax[i].x <<"," <<ax[i].y <<"|" <<axc[i]<<endl; }*/ sort(a,a+n,cmpy); mysorty(a,ay); mysortxy(a,axy); ; ;i<=axc[];i++) { ans+=cn2(axc[i]); } ;i<=ayc[];i++) { ans+=cn2(ayc[i]); } ;i<=axyc[];i++) { ans-=cn2(axyc[i]); } printf("%I64d\n",ans); ; }
637A原本是想的双关键字sort,但是后来发现没有那么麻烦,直接把数据存进1000000的数组扫两遍就行了。注意细节,尤其是for循环的起始位置。
#include<stdio.h> #include<stdlib.h> struct point { int o,x,y; }; ]; int main() { int n; scanf("%d",&n); int i; ;i<=;i++) { a[i].o=i; } ;i<=n;i++) { int input; scanf("%d",&input); (a[input].x)++; (a[input].y)=i; } ; ].x; ;i<=;i++) { if (a[i].x>maxn) { maxn=a[i].x; maxj=i; } } ; ; ;i<=;i++) { if (a[i].x==maxn && a[i].y<minm) { mini=i; minm=a[i].y; } } printf("%d\n",a[mini].o); ; }
[刷题codeforces]650A.637A的更多相关文章
- [刷题]Codeforces 794C - Naming Company
http://codeforces.com/contest/794/problem/C Description Oleg the client and Igor the analyst are goo ...
- [刷题codeforces]651B/651A
651B Beautiful Paintings 651A Joysticks 点击可查看原题 651B是一个排序题,只不过多了一步去重然后记录个数.每次筛一层,直到全为0.从这个题里学到一个正确姿势 ...
- [刷题]Codeforces 786A - Berzerk
http://codeforces.com/problemset/problem/786/A Description Rick and Morty are playing their own vers ...
- [刷题]Codeforces 746G - New Roads
Description There are n cities in Berland, each of them has a unique id - an integer from 1 to n, th ...
- CF刷题-Codeforces Round #481-G. Petya's Exams
题目链接:https://codeforces.com/contest/978/problem/G 题目大意:n天m门考试,每门考试给定三个条件,分别为:1.可以开始复习的日期.2.考试日期.3.必须 ...
- CF刷题-Codeforces Round #481-F. Mentors
题目链接:https://codeforces.com/contest/978/problem/F 题目大意: n个程序员,k对仇家,每个程序员有一个能力值,当甲程序员的能力值绝对大于乙程序员的能力值 ...
- CF刷题-Codeforces Round #481-D. Almost Arithmetic Progression
题目链接:https://codeforces.com/contest/978/problem/D 题解: 题目的大意就是:这组序列能否组成等差数列?一旦构成等差数列,等差数列的公差必定确定,而且,对 ...
- [刷题]Codeforces 785D - Anton and School - 2
Description As you probably know, Anton goes to school. One of the school subjects that Anton studie ...
- Codeforces刷题计划
Codeforces刷题计划 已完成:-- / -- [Codeforces370E]370E - Summer Reading:构造:(给定某些数,在空白处填数,要求不下降,并且相邻差值<=1 ...
随机推荐
- Android之 环境搭建
一. 使用ADT Bundle多合一下载包 下载地址:链接:http://pan.baidu.com/s/1gepNRjX 密码: ozdi 说 明:多合一下载包,里面包含了:sdk + ...
- Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53
项目问题解析“Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53.”这个问题是最近调试app的时 ...
- HDU 5289 Assignment (数字序列,ST算法)
题意: 给一个整数序列,多达10万个,问:有多少个区间满足“区间最大元素与最小元素之差不超过k”.k是给定的. 思路: 如果穷举,有O(n*n)复杂度.可以用ST算法先预处理每个区间最大和最小,O(n ...
- 【Java学习笔记】数组使用
package aaa; public class aaa { public static void main(String args[]) { int a[]={1,2,3,4}; for(int ...
- 【转】Android Studio -修改LogCat的颜色*美爆了*
原文网址:http://www.2cto.com/kf/201505/400357.html 一. 先看效果 二.设置 File->Settings 或Ctrl + Alt +S 找到 Edit ...
- winform实现自动更新并动态调用form实现
winform实现自动更新并动态调用form实现 标签: winform作业dllbytenull服务器 2008-08-04 17:36 1102人阅读 评论(0) 收藏 举报 分类: c#200 ...
- android学习笔记五
Android中的category大全 Api Level 3(SDK 1.5)和Api Level 4(SDK 1.6): android.intent.category.ALTERNATIVE a ...
- ubuntu下安装selenium2.0 环境
参考:http://www.cnblogs.com/fnng/archive/2013/05/29/3106515.html ubuntu 安装过程: 1.安装:setuptools $ apt-ge ...
- hdu 3746 Cyclic Nacklace(KMP)
题意: 求最少需要在后面补几个字符能凑成两个循环. 分析: 最小循环节的应用,i-next[i]为最小循环节. #include <map> #include <set> #i ...
- hdu5073 简单枚举+精度处理
其实这题还是挺简单的,因为移动k个星球后,这k个星球的权值就可以变为0,所以只有剩下的本来就是连着的才是最优解,也就是说要动也是动两端的,那么就O(N)枚举一遍动哪些就好了. 我是在杭电oj题目重现的 ...