A. Far Relative’s Birthday Cake
2016-03-11 19:02
253 查看
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Door's family is going celebrate Famil Doors's birthday party. They love Famil Door so they are planning to make his birthday cake weird!
The cake is a n × n square consisting of equal squares with side length 1.
Each square is either empty or consists of a single chocolate. They bought the cake and randomly started to put the chocolates on the cake. The value of Famil Door's happiness will be equal to the number of pairs of cells with chocolates that are in the same
row or in the same column of the cake. Famil Doors's family is wondering what is the amount of happiness of Famil going to be?
Please, note that any pair can be counted no more than once, as two different cells can't share both the same row and the same column.
Input
In the first line of the input, you are given a single integer n (1 ≤ n ≤ 100) —
the length of the side of the cake.
Then follow n lines, each containing n characters.
Empty cells are denoted with '.', while cells that contain chocolates are denoted by 'C'.
Output
Print the value of Famil Door's happiness, i.e. the number of pairs of chocolate pieces that share the same row or the same column.
Examples
input
output
input
output
Note
If we number rows from top to bottom and columns from left to right, then, pieces that share the same row in the first sample are:
(1, 2) and (1, 3)
(3, 1) and (3, 3)
Pieces that share the same column are:
(2, 1) and (3, 1)
(1, 3) and (3, 3)
分成两部分来求解,先求解每一行的C排列组合,在求解每一列的排列组合。
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Door's family is going celebrate Famil Doors's birthday party. They love Famil Door so they are planning to make his birthday cake weird!
The cake is a n × n square consisting of equal squares with side length 1.
Each square is either empty or consists of a single chocolate. They bought the cake and randomly started to put the chocolates on the cake. The value of Famil Door's happiness will be equal to the number of pairs of cells with chocolates that are in the same
row or in the same column of the cake. Famil Doors's family is wondering what is the amount of happiness of Famil going to be?
Please, note that any pair can be counted no more than once, as two different cells can't share both the same row and the same column.
Input
In the first line of the input, you are given a single integer n (1 ≤ n ≤ 100) —
the length of the side of the cake.
Then follow n lines, each containing n characters.
Empty cells are denoted with '.', while cells that contain chocolates are denoted by 'C'.
Output
Print the value of Famil Door's happiness, i.e. the number of pairs of chocolate pieces that share the same row or the same column.
Examples
input
3 .CC C.. C.C
output
4
input
4CC..
C..C
.CC.
.CC.
output
9
Note
If we number rows from top to bottom and columns from left to right, then, pieces that share the same row in the first sample are:
(1, 2) and (1, 3)
(3, 1) and (3, 3)
Pieces that share the same column are:
(2, 1) and (3, 1)
(1, 3) and (3, 3)
分成两部分来求解,先求解每一行的C排列组合,在求解每一列的排列组合。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; const int Max = 105; char a[Max][Max]; int main() { int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } int ans=0,sum=0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(a[i][j]=='C')sum++; } ans+=(sum-1)*sum/2; sum=0; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(a[j][i]=='C')sum++; } ans+=(sum-1)*sum/2; sum=0; } cout<<ans<<endl; return 0; }
相关文章推荐
- 并查集-poj-1988-Cube Stacking
- Activity活动(中)
- iOS 捕获系统外异常
- SDUSTOJ Problem B: 平面上的点——Point类 (II)
- Activity活动(上)
- C++ Primer Plus学习:第三章
- Activiti 基础总结二
- The Clocks
- Nginx安装到使用__me
- NYOJ660逃离地球——只为最大存活率~
- 软件工程第二次作业 软件评价
- VMware Workstation 虚拟机安装
- 几种排序算法总结:
- chrome日历插件开发
- C++ Primer Plus学习:第二章
- 操作系统作业---实验0
- [置顶] 安卓通知栏管理详解及分析 NotificationListenerService
- 使用Button特效 selector+shape
- mysql数据库优化
- 关于C#判断是否是数字的正则式