- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试解决描述的设备问题here .我有一个解决方案,但它需要超过 2 秒的时间限制。我试图优化我的代码以提高速度,但无法在 2 秒的限制内完成。
import sys
import math
for line in sys.stdin:
line = line.strip("\n").split(" ")
numSwitches = int(line[0])
numPics = int(line[1])
wiring = {}
inValid = False
for i in range(numPics):
if (inValid):
break
x = sys.stdin.readline().strip("\n")
f_x = sys.stdin.readline().strip("\n")
x_ones = 0
f_x_ones = 0
digit = 0
for i in range(numSwitches):
if f_x[i]=='1':
digit += 2**(numSwitches-i-1)
f_x_ones += 1
for switch in range(numSwitches):
if (x[switch]=='1'):
x_ones += 1
if not (switch in wiring.keys()):
wiring[switch] = digit
else:
wiring[switch] &= digit
if x_ones != f_x_ones:
inValid = True
break
if not inValid:
for i in wiring.values():
if i==0:
inValid = True
break
for possibilities in set(wiring.values()):
frequency = wiring.values().count(possibilities)
if frequency>1:
oneBits = 0
while (possibilities>0):
oneBits += (possibilities%2==1)
possibilities /= 2
if oneBits < frequency:
inValid = True
break
if not inValid:
print math.factorial(numSwitches-numPics)%1000003
else:
print 0
我正在寻找解决问题的方法的建议或关于如何优化当前代码的意见。
注意:考虑以下测试用例:
3 2
110
011
011
011
我的代码通过以下方式发现无效。首先,遇到第一张照片 (110, 011)。 wiring 字典被分配了以下键和值:
wiring[0] = 011
wiring[1] = 011
这意味着第一个和第二个开关可以点亮第二个或第三个灯。遇到第二张照片 (011, 011)。 布线更新如下:
wiring[1] = 011 & 011 = 011
wiring[2] = 011
现在观察接线的状态表明所有三个开关都可以点亮第二个和第三个灯。这是一个不一致,因为 3 个开关必须点亮三个灯,这里我们有三个开关点亮 2 个灯。
最佳答案
我认为这可能是一个解决方案,但我不确定,明天我可以解释更多
import numpy as np
from operator import mul
def apparatus(n, m, x, y):
if not m:
return np.math.factorial(n) % 1000003
result = 1
tmp = np.matrix([False] * x.shape[1])
for i in xrange(x.shape[1]):
if tmp[0, i]:
continue
tmp0 = np.prod(x[:, i] == x, 0)
tmp1 = np.prod(x[:, i] == y, 0)
if np.sum(tmp1) != np.sum(tmp0):
return 0
result *= np.math.factorial(np.sum(tmp1))
result %= 1000003
tmp += tmp1
return result
x = np.matrix([[True, True, False]])
y = np.matrix([[False, True, True]])
print apparatus(3, 1, x, y)
x = np.matrix([[True, False, False, False], [False, False, False, False]])
y = np.matrix([[True, False, False, False], [False, False, True, False]])
print apparatus(4, 2, x, y)
print apparatus(1000, 0, [], [])
关于algorithm - 解决来自 Kattis 的编程挑战 : Apparatus,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33850225/
我正在尝试解决我在网站 https://open.kattis.com/problems/coast 上发现的一个问题. Tl;dr 版本的问题是,对于给定的景观 map ,我应该打印出海岸线的长度(
我正在尝试解决这个问题( https://open.kattis.com/problems/anotherbrick )。 当我提交最终代码时,我不断收到运行时错误。我不确定我的代码有什么问题。 #
我是编程新手。我正在学习 XOR 以尝试在 Kattis 上解决类作业问题的 oddmanout 问题。 我正在尝试的是在一系列数字中找到奇怪的人。除一个号码外,每个号码都有一对。我必须找到没有的号码
This是我指的问题。快速总结: 输入:一个整数时间T;银行关闭的时间(以分钟为单位)和一组 c 和 t 表示此人携带的现金数量(整数)和从现在开始的时间(以分钟为单位)如果没有送达,此人将离开。服务
我目前正在 Kattis 做一些测试,但我被卡住了 with this one .到目前为止,我编写的代码在 Visual Studio 代码中使用 console.logging 时为我提供了最后一
我是一名 PHP 初学者,我正在尝试解决 Modulo Kattis 问题,当我在终端中测试我的代码时,它运行良好,但当我提交我的解决方案时,我得到“错误答案”。 问题(https://open.ka
请注意,此问题是作业。 通过下面的代码,我在Kattis网站上输入了这个问题的数据。代码可以编译,但是,我在“聚会人数#:”printf 之后出现段错误,我不确定为什么。请帮忙! 在 Kattis 中
我正在尝试解决描述的设备问题here .我有一个解决方案,但它需要超过 2 秒的时间限制。我试图优化我的代码以提高速度,但无法在 2 秒的限制内完成。 import sys import math f
我一直在尝试解决 Kattis 上的最小生成树问题。 ( https://open.kattis.com/problems/minspantree ) 第一个测试运行良好,第二个给出未指定的运行时错误
我收到了一些编程任务,需要完成这些任务才能进入工作面试的下一步。让他们都接受期待一个,描述:https://academicwork.kattis.com/problems/pebblesolitai
在试图找到阶乘 val 的最后一位的 Main 类中,为什么 public static void main(String[] args) { int testcases = sc.n
问题如下: Dick is d=12 years old. When we say this, we mean that it is at least twelve and not yet thirt
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!