B - Vitaly and Night
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
Submit

Status

Practice

CodeForces 595A
Description
One day Vitaly was going home late at night and wondering: how many people aren’t sleeping at that moment? To estimate, Vitaly decided to look which windows are lit in the house he was passing by at that moment.

Vitaly sees a building of n floors and 2·m windows on each floor. On each floor there are m flats numbered from 1 to m, and two consecutive windows correspond to each flat. If we number the windows from 1 to 2·m from left to right, then the j-th flat of the i-th floor has windows 2·j - 1 and 2·j in the corresponding row of windows (as usual, floors are enumerated from the bottom). Vitaly thinks that people in the flat aren’t sleeping at that moment if at least one of the windows corresponding to this flat has lights on.

Given the information about the windows of the given house, your task is to calculate the number of flats where, according to Vitaly, people aren’t sleeping.

Input
The first line of the input contains two integers n and m (1 ≤ n, m ≤ 100) — the number of floors in the house and the number of flats on each floor respectively.

Next n lines describe the floors from top to bottom and contain 2·m characters each. If the i-th window of the given floor has lights on, then the i-th character of this line is ‘1’, otherwise it is ‘0’.

Output
Print a single integer — the number of flats that have lights on in at least one window, that is, the flats where, according to Vitaly, people aren’t sleeping.

Sample Input
Input
2 2
0 0 0 1
1 0 1 1
Output
3
Input
1 3
1 1 0 1 0 0
Output
2
Hint
In the first test case the house has two floors, two flats on each floor. That is, in total there are 4 flats. The light isn’t on only on the second floor in the left flat. That is, in both rooms of the flat the light is off.

In the second test case the house has one floor and the first floor has three flats. The light is on in the leftmost flat (in both windows) and in the middle flat (in one window). In the right flat the light is off.
AC代码:

#include <stdio.h>
int main (){
    int n,m,num,sum,j,i;
    int a[1000][250];
    scanf("%d%d",&n,&m);
    num=2*m;
    sum=0;
    for (i=0;i<n;i++){
        for (j=0;j<num;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for (i=0;i<n;i++){
        for (j=0;j<num;j=j+2){
            if (a[i][j]==1||a[i][j+1]==1){
                sum+=1; 
            }
        }   
    }
    printf("%d",sum);
    return 0;
} 

题目大意:Vitaly想通过窗户亮灯的情况估测当时还没有睡觉的人数;
输入n,m分别代表楼层数,和每层的公寓数,将公寓编号从1~m,而且每个公寓有两扇窗户,编号从1~2m,其中一个公寓的两扇窗户只要有一扇窗户亮,即判断该户人家没有睡觉。
思路:定义一个二维数组a[i][j] ,i代表楼层数,j代表每层的窗户数,使用两个嵌套的循环输入灯亮与否的情况 (亮输入1,没亮输入0),再将数组遍历,通过||运算将亮两盏灯和一盏灯的人户筛选出来即可;

ZSY:
思路:第一行输入两个数a,b;接着输入a*b个数(0或1),如果连续两个数有一个为1,则计数器加一

#include <stdio.h>

int main(){
    int n,m,i,a,b,c=0;
    scanf("%d %d",&n,&m);
    while(n--){
        for(i=0;i<m;i++){
            scanf("%d%d",&a,&b);
            if(a||b) c++;
        }
    }
    printf("%d\n",c);
    return 0;
}
//#define LOCAL
#include <stdio.h>

int main(){
    int a[100][200];
    int n,m;
    int i,j;
    int cnt=0;
    #ifdef LOCAL
    freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
    #endif
    scanf("%d %d",&n,&m);
    for(i=0;i<n;i++){
        for(j=0;j<2*m;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<2*m;j+=2){
            if(a[i][j]||a[i][j+1]) cnt++;
        }
    }
    printf("%d\n",cnt);
    return 0;
}

(严格根据输入格式储存处理)