主页 > 游戏开发  > 

洛谷【算法1-1】模拟与高精度

洛谷【算法1-1】模拟与高精度

洛谷题单,蓝桥备赛 题单链接

未完待续… 预计 2025年2月26日 前完成

目录 进度题解与碎碎念P1042 [NOIP 2003 普及组] 乒乓球题面小结ac代码 P2670 [NOIP 2015 普及组] 扫雷游戏题面小结ac代码 题题面小结ac代码 题题面小结ac代码

进度

【2025年2月19日19点33分】写了前俩,歇了

题解与碎碎念 P1042 [NOIP 2003 普及组] 乒乓球 题面

原题链接

小结 读入处理的一般(蒟蒻刚从C++转python,见谅)输出处理的很冗余丑陋(勉强能满足输出条件)为什么一定要匹配 W L E,用 else 死了一半

槽点/易错点:

最后一个数据点,在匹配E,0:0 也是要输出的,亏我多虑卡 90(我恨考虑只有 E 的情况(可能需要考虑)没有E,用字符串末尾控制结束,我用的是把 input_data 的 \n 都替换成空,数它的 length ac代码 import sys input_data = sys.stdin.read() input_data = input_data.replace("\n", "") def WorL(n): Wcount, Lcount = 0, 0 head = 1 length = len(input_data) # print(f"length= {length}") for index, char in enumerate(input_data): # print(f'idx= {index}') # print(char) if char == "E": if head == 1: print(f"{Wcount}:{Lcount}", end="") else: # 槽点1,意思是这里不用判断是不是0:0从而不输出 print(f"\n{Wcount}:{Lcount}", end="") break elif char == "W": Wcount += 1 elif char == "L": Lcount += 1 if index == length - 1: if head == 1: print(f"{Wcount}:{Lcount}", end="") else: if not(Wcount == 0 and Lcount == 0): print(f"\n{Wcount}:{Lcount}", end="") break if max(Wcount, Lcount) >= n and abs(Wcount - Lcount) >= 2: if head == 1: print(f"{Wcount}:{Lcount}", end="") head = 0 else: print(f"\n{Wcount}:{Lcount}", end="") Wcount, Lcount = 0, 0 WorL(11) print("\n") WorL(21)

P2670 [NOIP 2015 普及组] 扫雷游戏 题面

原题链接

小结

ez(就是python不熟悉,写的有点累

ac代码 import sys firstLine = sys.stdin.readline().strip() N, M = map(int, firstLine.split()) mineFiled = [] for _ in range(N): line = sys.stdin.readline().strip() mineFiled.append(line) for i in range(N): mineFiled[i] = '?' + mineFiled[i] + '?' addRow = '?' * (M + 2) mineFiled.insert(0, addRow) mineFiled.append(addRow) ans = [[0] * M for _ in range(N)] def sumRegion(I, J, matrix): # print(matrix) sum = 0 for i in range(I - 1, I + 2): for j in range(J - 1, J + 2): # print(f'i= {i}, j= {j}') if matrix[i][j] == '?': sum += 1 return 9 - sum for i in range(1, N + 1): # print(mineFiled[i]) for j in range(1, M + 1): if mineFiled[i][j] == '?': # print(f'__i= {i}, j= {j}') ans[i - 1][j - 1] = sumRegion(i, j, mineFiled) else: ans[i - 1][j - 1] = -1 # print(ans) for i in range(0, N): for j in range(0, M): if ans[i][j] == 0-1: print("*", end="") else: print(ans[i][j], end="") print("")

题 题面 小结 ac代码 题 题面 小结 ac代码
标签:

洛谷【算法1-1】模拟与高精度由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“洛谷【算法1-1】模拟与高精度