• kotlin笔记:copy from a man in integrity


    https://codeforces.com/contest/1360/submission/81404262

    import java.lang.IllegalArgumentException
    import java.lang.StringBuilder
    import java.sql.Array
    import java.util.*;
    import kotlin.Comparator
    
    import kotlin.collections.ArrayList
    import kotlin.math.*;
    import kotlin.system.exitProcess
    import  kotlin.collections.*
    
    private fun readLn() = readLine()!! // string line
    private fun readInt() = readLn().toInt() // single int
    private fun readLong() = readLn().toLong() // single long
    private fun readDouble() = readLn().toDouble() // single double
    private fun readStrings() = readLn().split(" ") // list of strings
    private fun readInts() = readStrings().map { it.toInt() } // list of ints
    private fun readLongs() = readStrings().map { it.toLong() } // list of longs
    private fun readDoubles() = readStrings().map { it.toDouble() } // list of doubles
    
    class Bit(var n:Int) {
        var a = ArrayList<Long>()
        init {
            a.resize(n+1,0);
        }
        fun clear(m:Int) {
            n = m
            a.resize(n+1,0)
        }
        fun add(x:Int,v:Long) {
            var p = x
            while(p<=n) {
                a[p] += v
                p += p and -p
            }
        }
        fun sum(x:Int) : Long {
            var ans : Long = 0
            var p = x
            while(p>0) {
                ans += a[p]
                p -= p and -p
            }
            return ans
        }
    }
    
    
    fun lower_bound(a:ArrayList<Int>, l:Int, r:Int , x:Int ): Int {
        var L=l-1
        var R=r-1
        while(R-L>1) {
            var mid = (L+R)/2
            if(a[mid]>=x) R=mid
            else L=mid
        }
        return R
    }
    
    fun <T> ArrayList<T>.resize(n:Int, v:T) {
        this.clear()
        for(i in 0..n-1) this.add(v)
    }
    
    /*
    ---------------c++->kotlin-------------------
    swap(a,b)                    a=b.also{b=a}
    for(i=0;i<n;i++)             for(i in 0 until n) / for(i in 0..n-1)
    for(i=n-1;i>=0;i--)          for(i in n-1 downTo 0)
    for(auto it:s)               for(it in s)
    min,max                      minOf,maxOf
    printf                       println("${ans}")
    println(res)                 println(res.joinToString(" "))
    ll a[n]                      var a=Array<Long>(n){}
    a&b                          a and b
    a|b                          a or b
    a^b                          a xor b
    int gao(int a,int b)         fun gao(a:Int,b:Int):Int
    ---------sort---------
    res.sortBy({it.fi})//res.sortByDescending({it.fi})
    res.sortWith({it.fi},{it.se})//res.sortWith(compareByDescending { it.fi })
    --------vector--------
    vector<int> res;             var res=mutableListOf<Int>()
    res.push_back                res.add
    vector<int> mp[n];           var mp=Array(n){mutableListOf<Int>()}
    ---------set----------
    set<int> s;                  var s=TreeSet<Int>()
    s.insert                     s.add
    s.erase                      s.remove
    s.begin                      s.first
    s.rbegin                     s.last
    set<pair<int,int>> s;        var s=TreeSet<Pair<Int,Int>>(compareBy({it.first},{it.second}))
    -----unordered_map-----
    unordered_map<int,int>       var mp:MutableMap<Int,Int> = mutableMapOf()
    mp[x]++                      mp[x]=(mp[x]?:0)+1
    sum+=mp[x]                   sum+=mp[x]?:0
    -----priority_queue-----
    struct node{int a;}          data class node(var a:Int)
    priority_queue<node> q;      var q=PriorityQueue<node>(compareBy({it.a}))
    q.top                        q.peek
    q.pop                        q.poll
    q.push                       q.add
    ---------------------------------------------
     */
    
    //---------------------------------------------------------------------------------------------------------------------
    //---------------------------------------------------------------------------------------------------------------------
    //---------------------------------------------------------------------------------------------------------------------
    //---------------------------------------------------------------------------------------------------------------------
    //---------------------------------------------------------------------------------------------------------------------
    
    class node(val L:Int, val R:Int) {
        var Len = R-L+1
        private val myCustomComparator =  Comparator<node> { a, b ->
            when {
                (a == null && b == null) -> 0
                (a == null) -> -1
                else -> 1
            }
        }
    }
    
    
    fun get_factor(n:Int,k:Int):ArrayList<Int> {
        var ans = ArrayList<Int>()
        var i = 2
        while(i*i<=n) {
            if(n%i==0) {
                if(i<=k) ans.add(i)
                if(n/i<=k) ans.add(n/i)
            }
            i++
        }
        return  ans
    }
    
    
    fun main () {
        val T = readInt()
        repeat(T) {
            var n = readInt()
            var dp = ArrayList<ArrayList<Int>>()
    
            for (i in 1..n) {
                var line = ArrayList<Int>()
                line.resize(n, 0)
                dp.add(line)
            }
    
            var G = ArrayList<String>()
            for (i in 0..n - 1) {
                var temps = readLine()!!
                G.add(temps)
            }
            for (i in 0..n - 1) {
                if (G[n - 1][i] == '1') dp[n - 1][i] = 1
                if (G[i][n - 1] == '1') dp[i][n - 1] = 1
            }
            var flag = 1
            for(i in n-2 downTo 0) {
                for(j in n-2 downTo 0) {
                    if(G[i][j]=='1') {
                        if(dp[i+1][j]==0&&dp[i][j+1]==0) {
                            flag = 0
                            break
                        }
                        dp[i][j] = 1
                    }
                }
                if(flag==0) break
            }
            if(flag==1) println("YES")
            else println("NO")
        }
    }
    
    
    
  • 相关阅读:
    AUTOSAR-文档中所使用的UML文件
    开心一下-实现基于Java一个中文编程语言
    HDU 1026 Ignatius and the Princess I
    HDU 2553 (状压) N皇后问题 (2)
    UVa 11825 (状压DP) Hackers' Crackdown
    UVa 10891 (博弈+DP) Game of Sum
    LA 2965 Jurassic Remains
    HDU 2126 (背包方法数) Buy the souvenirs
    POJ 3984 迷宫问题
    POJ 3287 (基础BFS) Catch That Cow
  • 原文地址:https://www.cnblogs.com/reshuffle/p/12977503.html
Copyright © 2020-2023  润新知