首页 > 其他分享 >ak日记 831 dxm

ak日记 831 dxm

时间:2022-08-31 19:55:37浏览次数:40  
标签:831 ak range sys dxm vs ans line dp

import sys
from math import inf
line = sys.stdin.readline().strip()
vs = list(map(int, line.split()))
n, k = vs[0], vs[1]
line = sys.stdin.readline().strip()
vs = list(map(int, line.split()))
dp = [[0]*n for _ in range(n)]
ans = 0
for i in range(n-1, -1, -1):
    dp[i][i] = (vs[i], vs[i])
    if k==1: ans+=1
    for j in range(i+1, n):
        minv, maxv = dp[i+1][j]
        minv = min(minv, vs[i])
        maxv = max(maxv, vs[i])
        dp[i][j] = (minv, maxv)
        if minv*k == maxv:ans += 1
print(ans)
        
        
import sys
from math import inf
from functools import lru_cache


class Solution:
    def slove(self, n, m, k, x, grid):
        @lru_cache(None)
        def dfs(i=0, j=0, total=0):
            ans = False
            if i == n - 1 and j == m - 1 and total + grid[i][j] == x:
                ans = True
            if i < n and j < m:
                ans = ans or dfs(i + 1, j, total + grid[i][j])
                ans = ans or dfs(i, j + 1, total + grid[i][j])
            return ans

        return dfs()


sol = Solution()
T = int(sys.stdin.readline().strip())
for _ in range(T):
    line = sys.stdin.readline().strip()
    vs = list(map(int, line.split()))
    n, m, k, x = vs[0], vs[1], vs[2], vs[3]
    grid = []
    for _ in range(n):
        line = sys.stdin.readline().strip()
        vs = list(map(int, line.split()))
        grid.append(vs)
    if (sol.slove(n, m, k, x, grid)):
        print("yes")
    else:
        print("no")
import sys
from math import inf
MOD = 10**9+7
n = int(sys.stdin.readline().strip())
dp = [[[0]*2 for _ in range(2)] for _ in range(n+1)]
#dp[i][j][k] i位以 j k=0非1 j k=1 1结尾的最大个数 00 01 10 11
dp[1] = [[8, 1], [0, 0]]
for i in range(2, n+1):
    dp[i][0][0] = ((dp[i-1][0][0] + dp[i-1][1][0])*8)%MOD
    dp[i][0][1] = (dp[i-1][0][0])%MOD
    dp[i][1][0] = (dp[i-1][0][1]*8)%MOD
    dp[i][1][1] = 0
ans = sum([sum(dp[-1][i]) for i in range(2)])%MOD
print(ans)

比较简单 不到一小时选择+算法就做完了~

标签:831,ak,range,sys,dxm,vs,ans,line,dp
From: https://www.cnblogs.com/yuelien/p/16644354.html

相关文章

  • 在VS2019中配置OpenGL环境。(使用CMake方法)
    网上一大堆VS下配置OpenGL环境的,但是这些方法都是基于VS空项目,并没有利用Cmake来构建。而我之前的代码都是在Linux下使用cmake构建,所以为了更快的在VS下调试运行我的程序,所......
  • 数据结构第一天 -831
    要点解决问题方法的效率,跟空间的利用效率有关解决问题方法的效率,跟算法的巧妙程度有关上述问题中,如果按照题目给定的式子去写程序,利用次方的关系写,就是f1对应的关系,实......
  • 1 linux系统编程入门-linux gcc 静态库 动态库 Makefile GDB
    标题: linuxgcc静态库动态库MakefileGDB 1.1linux开发环境搭建1linux系统虚拟机云服务器sudoapt-installopenssh-server  2xshellxftp......
  • 0831 进展不大的一月
    这个月,尤其是最近两周,住院,杂事,搞的整体的进展很慢.单词,赖世雄,口语,基本上都没有系统的学习计划与学习时间. 同时,你有点想上cambly,但是,你认为自己的基本太差了,......
  • Canal 原理说明和Mysql+Canal+kafaka 按装说明
    Canal原理说明:主要应用场景Mysql与Redis可靠一致性,因为msyql修改变更将数据加到kafka队列可以确保存数据一定会被更新到redis,kafka有重试和可以确保被消费。使用阿里的......
  • CCC3.0 SPAKE2+ SCP03
    SPAKE2手机端和车辆端在使用SPAKE2+存在的操作双端password、salt根据计算z0、z1。双端根据z0、z1计算w0、w1车辆端根据w1计算L手机端根据w0计算x,之后在ver......
  • ES6面试点-WEAKMAP与MAP的区别,SET与WEAKSET的区别
    ES6面试点-WEAKMAP与MAP的区别,SET与WEAKSET的区别标签: es6  ES6引入了四种新的数据结构:映射(Map)弱映射(WeakMap)集合(Set)弱集合(WeakSet)一、Object对......
  • CMake及交叉工具编译链的安装使用
    1.原理CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的mak......
  • cp {,bak}用法(转载)
    cpfilename{,bak}cpfilename{,.bak}这个命令是用来把filename备份成filename.bak的等同于命令cpfilenamefilename.bak这里利用的是bash的braceexpansion(大......
  • continue与break
    1<!DOCTYPEhtml>2<html>3<head>4<metacharset="utf-8">5<title></title>6</head>7<body>8<p>9......