沫璃有一个画板,画板可以抽象成有100行每行100个像素点的正方形。沫璃在画板上画画,她一共画了n次,每次将一个矩形涂上颜色。沫璃想知道一共有多少个像素点被她涂过颜色。若一个像素点被涂了k次,那么认为有k个像素点被涂过颜色。
沫璃有一个画板,画板可以抽象成有100行每行100个像素点的正方形。沫璃在画板上画画,她一共画了n次,每次将一个矩形涂上颜色。沫璃想知道一共有多少个像素点被她涂过颜色。若一个像素点被涂了k次,那么认为有k个像素点被涂过颜色。
第一行一个数T(T<=100),表示数据组数。
对于每组数据,第一行一个整数n , (1<=n<=100)
接下来n行,每行4个整数x1, y1,
x2, y2 (1 <= x1 <= x2 <= 100, 1 <= y1 <= y2 <= 100),表示矩形的两个对角所对应的像素点的坐标。
对于每组数据,输出一行,表示沫璃一共涂了多少个像素点。
2 2 1 1 2 3 2 2 3 3 2 1 1 3 3 1 1 3 3
10 18
| #include<iostream> classpaint { public: paint(intx1, inty1, intx2, inty2) :_x1(x1), _y1(y1), _x2(x2), _y2(y2) { } ~paint() { _x1 = 0; _y1 = 0; _x2 = 0; _y2 = 0; } intmianji(intx1, inty1, intx2, inty2) { return(y2 - y1 + 1)*(x2 - x1 + 1); } private: int_x1; int_y1; int_x2; int_y2; }; usingnamespacestd; intmain(void) { intx1, y1, x2, y2, T, n; intsum[100] = {0}; cin>>T; if(T > 0 && T < 101) for(inti = 0; i < T; ++i) { sum[i] = 0; cin >> n; if(n>0&&n<101) for(intj = 1; j <= n; ++j) { cin >> x1 >> y1 >> x2 >> y2; paint pa(x1, y1, x2, y2); sum[i] += pa.mianji(x1, y1, x2, y2); } else cout << "false!"<< endl; } else { cout << "false!"<< endl; } for(inti = 0; sum[i] != 0; ++i) cout << sum[i] << endl; return0; } |
//我解释一下题意,刚开始我也没读懂题意,以下用题目中用例说明下
/* 输入例子1:
* 2
* 2
* 1 1 2 3
* 2 2 3 3
* 2
* 1 1 3 3
* 1 1 3 3
*
* 从(1,1)点填涂到(2,3)点,一共涂了6个格子(包括了点(1,1),一开始没考虑这个点就懵了,直接跳下一题),
* 用下图解释下这一操作(0表示已经涂色,1表示未涂色)
* 0 0 0 1 1 1 1...
* 0 0 0 1 1 1 1...
* 1 1 1 1 1 1 1...
* ..
* ..
* 同理从点(2,2)涂到(3,3),一共涂了4个格子,所以用例输出10;第二个用例输出18.
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int t = sc.nextInt();
int sum=0;
for (int j = 0; j < t; j++) {
int x1 = sc.nextInt();
int y1 = sc.nextInt();
int x2 = sc.nextInt();
int y2 = sc.nextInt();
sum+=(x2-x1+1)*(y2-y1+1);
}
System.out.println(sum);
}
}
}
sum = int(input())
for i in range(sum):
num = int(input())
result = 0
for j in range(num):
my_list = list(map(int, input().split(" ")))
x1 = my_list[0]
y1 = my_list[1]
x2 = my_list[2]
y2 = my_list[3]
square = (abs(x1-x2)+1)*(abs(y1-y2)+1)
result += square
print(result)
#include<iostream>
using namespace std;
int main()
{
int T;
cin>>T;
for(int i=0;i<T;i++)
{
int n;
cin>>n;
int total=0;
for(int j=0;j<n;j++)
{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
total+=(x2-x1+1)*(y2-y1+1);
}
cout<<total<<endl;
}
} #include <iostream>
(720)#include <cmath>
using namespace std;
int main(){
int T;
cin>>T;
while(T--){
int n;
cin>>n;
int sum = 0;
for(int i=0;i<n;i++){
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
sum+=((abs(y2-y1)+1)*(abs(x2-x1)+1));
}
cout<<sum<<endl;
}
return 0;
} #include <iostream>
#include <vector>
using namespace std;
void show_num()
{
long long fre;
cin >> fre;
long long num;
long long flag = 0;
long long gg[4];
while (fre--)
{
for (long long i = 0; i < 4; i++)
{
cin >> gg[i];
}
flag += (gg[2] - gg[0] + 1) * (gg[3] - gg[1] + 1);
}
cout << flag<<endl;
}
int main()
{
long long fre;
cin >> fre;
while (fre--)
show_num();
} T = int(input()) ind = 1 for j in range(T): sums = 0 n = int(input()) for i in range(n): [x1,y1,x2,y2] = list(map(int,input().split())) sums = sums+(x2-x1+1)*(y2-y1+1) print(sums)python3
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int T = in.nextInt();
while(in.hasNext()){
int n = in.nextInt();
int [][]a = new int [n][4];
for(int i=0;i<n;i++){
for(int j=0;j<4;j++){
a[i][j]=in.nextInt();
}
}
int t = 0;
for(int i=0;i<n;i++){
t = t+(a[i][3]-a[i][1]+1)*(a[i][2]-a[i][0]+1);
}
System.out.println(t);
}
}
} #include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(void){
int T;
int N;
int i;
int x1;
int y1;
int x2;
int y2;
int x;
int y;
int sum;
int t;
while(scanf("%d",&T)!=EOF){
for(t=0;t<T;t++){
sum = 0;
scanf("%d",&N);
for(i=0;i<N;i++){
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
x = abs(x1-x2)+1;
y = abs(y1-y2)+1;
sum = sum + x*y;
}
printf("%d\n",sum);
}
}
return 0;
}
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//数组个数
int a=sc.nextInt();
int[] c=new int[a];
for(int z=0;z<a;z++){
int sum=0;
//有几行
int b=sc.nextInt();
int num=0;
for(int j=0;j<b;j++){
int aax=sc.nextInt();
int aay=sc.nextInt();
int bbx=sc.nextInt();
int bby=sc.nextInt();
int d=0;
int e=0;
if(aax>bbx){
d=aax-bbx+1;
}else {
d=bbx-aax+1;
}
if(aay>bby){
e=aay-bby+1;
}else {
e=bby-aay+1;
}
sum=sum+d*e;
}
c[z]=sum;
}
for(int t=0;t<a;t++){
System.out.println(c[t]);
}
}
}
n=int(input()) A=[[] for i in range(n)] for i in range(n): num=int(input()) A[i]=[input().split() for j in range(num)] for i in range(n): sum_case=0 for j in range(2): sum_ju=(int(A[i][j][2])-int(A[i][j][0])+1)*(int(A[i][j][3])-int(A[i][j][1])+1) sum_case=sum_case+sum_ju print(sum_case)本地运行正确
PHP版本
<?php
$groups = intval(fgets(STDIN));
$pixSumArr = [];
for($i = 0; $i < $groups; $i++) {
$columns = intval(fgets(STDIN));
$pixelSum = 0;
for($j = 0; $j < $columns; $j++) {
$coordinate = explode(" ", rtrim(fgets(STDIN)));
$pixelSum += ($coordinate[2] - $coordinate[0] + 1) * ($coordinate[3] - $coordinate[1] + 1);
}
$pixSumArr[] = $pixelSum;
}
for($k = 0; $k < $groups; $k++) {
echo $pixSumArr[$k] . PHP_EOL;
} Go版本
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
var (
groups int
columns int
)
func main() {
inputReader := bufio.NewReader(os.Stdin)
groupsStr, err := inputReader.ReadString('\n')
if err != nil {
fmt.Println("groups read error: ", err)
return
}
groupsStr = strings.Replace(groupsStr, "\n", "", -1)
groups, err := strconv.Atoi(groupsStr)
if err != nil {
fmt.Println("convert groups to int failed, err: ", err)
return
}
var pixelSumSlice []int
for groups > 0 {
columnsStr, err := inputReader.ReadString('\n')
columnsStr = strings.Replace(columnsStr, "\n", "", -1)
columns, err := strconv.Atoi(columnsStr)
if err != nil {
fmt.Println("columns convert to int failed, err: ", err)
return
}
var pixelSum int
for columns > 0 {
columnsArgsStr, err := inputReader.ReadString('\n')
if err != nil {
fmt.Println("columns args read failed, err: ", err)
return
}
columnsArgsStr = strings.Replace(columnsArgsStr, "\n", "", -1)
columnsArgs := strings.Split(columnsArgsStr, " ")
x1, _ := strconv.Atoi(columnsArgs[0])
x2, _ := strconv.Atoi(columnsArgs[2])
y1, _ := strconv.Atoi(columnsArgs[1])
y2, _ := strconv.Atoi(columnsArgs[3])
pixelSum += (x2 - x1 + 1) * (y2 - y1 + 1)
columns--
}
pixelSumSlice = append(pixelSumSlice, pixelSum)
groups--
}
if len(pixelSumSlice) == 0 {
return
}
for _, val := range pixelSumSlice {
fmt.Println(val)
}
}
}