Codeforces-April Fools Day Contest 2020-E-图片坐标

 这是我做的图片(Codeforces@LetMeFly)
做了一张有坐标的图片,可能会帮助你解答E题
 Having a picture with coordinates may help you solve E problem
E. Jordan Smiley
 time limit per test1 second
 memory limit per test256 megabytes
 inputstandard input
 outputstandard output
Input
 The input contains two integers row, col (0≤row,col≤63), separated by a single space.
Output
 Output “IN” or “OUT”.

 (这是题目的图片)
 Examples
 input
 0 0
 output
 OUT
 input
 27 0
 output
 IN
 input
 0 27
 output
 OUT
 input
 27 27
 output
 IN
其实就是判断一个点的坐标在不在封闭图形内。
 
 外国大神的评论以及代码是:(Codeforces@brezhart)
 First: fill area in photoshop
Second: Do 2d dimension arr. Check pixel at (i15)+5 (g15)+5. If it’s white, put 0 in arr else put 1; Save that arr in file for use it in final solution. I picked Node.JS for this step.
var fs = require("fs");
var Canvas = require("canvas");
let fileLink = "smile.png";
var canvas = new Canvas.Canvas(960, 960, "png");
var ctx = canvas.getContext("2d");
const Image = Canvas.Image;
var image = new Image(963,964);
dataArr = [];
image.onload = function () {
    ctx.drawImage(image,-2,-2,963,964);
    for (let i = 0; i < 64; i++){
        let newStr = [];
        for (let g = 0; g < 64; g++){
            var p = ctx.getImageData((g*15)+4, (i*15)+4, 1, 1).data;
            if (p[2] < 240){
                newStr.push(0)
            } else {
                newStr.push(1)
            }
        }
        dataArr.push(newStr)
    }
    fs.writeFileSync("DATAOUT.txt",JSON.stringify(dataArr))
};
image.src = fileLink;
 Final solution: just get row and col and check arr[row][col] if it’s 0 print “OUT” else print “IN”
这需要时间啊 …………
posted on 2020-04-02 00:38 施瓦辛格LetMeFly 阅读(79) 评论(0) 收藏 举报
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号