本文共 1095 字,大约阅读时间需要 3 分钟。
需求
光照照明高度是100000 一块板子高度固定是50000 入射的点(0,50000) 判断如下点是否在反射和折射线上。反射线按1:2长宽比例 ,折射是按2:1长宽比例。 求要写多少次反射折射线 3<x,y<100000 蚊子即点的数量在0-30000之间
思路 x=2y+c 就是 题里面的无数平行线 c就是偏移量,x平移后的位置。
把给定点带入公式,算出偏移量是否都一样,一样的就是一条线的, 所有不一样的值得个数就是需要的线的个数。测试数据 3 4 1 50002 2 50002 2 49999 2 50004 6 823 50001 822 50002 823 50002 823 50003 823 50004 823 50004 4 1 99999 2 1 99999 99999 99999 1
#1 2
#2 3 #3 4*
*/import java.util.Scanner;
public class Solution {
static int N;
static int[] x = new int[30000]; static int[] y = new int[30000]; static int T; static int AnswerN; public static void main(String[] args){ Scanner c = new Scanner(System.in); T = c.nextInt(); for(int test_case=1; test_case<=T;test_case++){ N = c.nextInt(); for(int i=0;i<N;i++){ x[i]=c.nextInt(); y[i]=c.nextInt(); } for(int i=0;i<N;i++){ y[i] = y[i] - 50000; if(y[i]>0){ x[i] = x[i] - y[i]/2; y[i] = 0; } else{ x[i] = x[i] + 2*y[i]; y[i] = 0; } } AnswerN = 1; for(int i=1;i<N;i++){ boolean fit = false; for(int j=0;j<i;j++){ if(x[i]==x[j]&&y[i]==y[j]){ fit = true; break; } } if(!fit) AnswerN++; } System.out.println("#"+test_case+" "+AnswerN); } } }转载地址:http://lrwza.baihongyu.com/