09 2023 档案
摘要:Trees 题意: 有n颗树,要求第i颗和第n-i+1颗高度要相同,并且第i颗和第i+1颗相差为1且递增(对于前一半来说) 现在一个操作是可以把任意一棵树修改为任意高度,给定树的高度序列,求出最小操作数 分析: 因为树的高度要求以1递增,而位置也是递增的,所以如果存在一个序列满足树的高度要求,那么每
阅读全文
摘要:Changing a String 题意: 给定两个字符串a,b,可以对A进行三种操作,删除a中任意位置一个字符,在a中任意位置插入一个任意字符,将a中某个位置的字符更换成任意字符, 现让a,b相等,输出最小操作次数,并且输出每次具体操作。 分析: dp[i][j]表示将串a的前i个字符变成串b的前
阅读全文
摘要:H. Hardcore Hangman 题意: 有一个隐藏字符串,只允许提问6次, 每次提问可问多个字母, 若隐藏字符串中出现了所提问的字母,则返回所在下标, 编写程序输出隐藏字符串 分析 把26个字母映射成0-25,则可用二进制唯一表示出来, 因为2的5次方>26,所以5位二进制数即可表示一个字母
阅读全文
摘要:找毒药问题 题意: 1000瓶药水,有一瓶有毒,小老鼠喝下去之后会在1小时死亡。问给你一小时你需要多少只老鼠 才能检测出那瓶是毒药? 分析: 先常规考虑,最简单要1000只,因为这样我们可以一一对应知道哪一瓶是毒药。 考虑十进制数的二进制表示也是唯一的。 让一只小鼠表示一个数位,那么所需小鼠数量可大
阅读全文
摘要:快读、关同步 int read(){ int f=1,x=0;char c=getchar(); while(!isdigit(c)) { if(c=='-')f=-1; c=getchar(); } while(isdigit(c)){ x=x*10+c-'0'; c=getchar(); } r
阅读全文
摘要:# A. Set or Decrease ### 题意: 给定一个长度为n的数组给一个数k,你可以进行一下两种操作 1.数组中的一个数减1 2.用数组中的一个数赋值给数组中的另一个数 (操作1 2 等价) 要求操作次数最小,使数组的和小于等于k ### 思路: 有两个变量 易得,操作一多,则操作二少
阅读全文