摘要:
传送门 A.Chuanpai int main(){ int _=read; while(_--){ int n=read,res=0; rep(i,1,6) rep(j,1,i) if(i+j==n) res++; cout<<res<<endl; } return 0; } B.Hotpot i 阅读全文
摘要:
传送门 A.Odd Set 思路: 判断奇偶个数是否相等。 ##代码: int a[maxn]; void solve(){ int n=read,cnt0=0,cnt1=0; rep(i,1,2*n){ a[i]=read; if(a[i]&1) cnt1++; else cnt0++; } if 阅读全文
摘要:
传送门 #思路: 首先$O(n^{2})$的暴力不难想。 题目中有个条件是$a[i]<=2n$ 也就是说$a[i]a[j]<=2n$ 这样第二层循环的范围就有所缩小 最坏情况下第二层会跑$2n*(1+1/2+1/3+……+1/n)$ 即$O(nlogn)$ 最后要记得开$long long$ #代码 阅读全文
摘要:
传送门 #思路: 考虑简单的情况$0001100$ 这样移动后有$0011000$和$0000110$情况,可以发现$11$始终是在一起的,也就是说他们的移动位置可以看成是把$1$放到$0$上。 对于连续的多个$1$来说,有效的移动是成对的$11$,单独多出来的那个是无法移动的。 问题就传化成了有$ 阅读全文
摘要:
传送门 #思路: 其实是个假交互题,思路也很好想,只是我少看了一句话以为$O(nm)$的算法过不了罢了。 利用异或的思想,将所有的字符串的每一位出现的字母个数都统计一下,一定可以两两成对抵消掉,所以那个出现了奇数次的字母就是这一位的答案。 输入输出好像也没有什么用到交互的地方,不刷新缓冲区也可以过。 阅读全文
摘要:
传送门 #思路: 经过$x次$变化后 \(b_{1}=gcd(a_{1},a_{2},……,a_{x})\) 也就是说最多$n$次操作后,数组中的数就会相等。 答案具有单调性,如果$mid$次操作可以使得数组中的数相等,那么说明大于$mid$次的操作也一定可以。 二分变化的次数,$check$的时候 阅读全文
摘要:
传送门 #思路 最多操作为将$a,b$都向$1$转化,次数为两者的质因子的幂次之和。 最少操作次数为将$a,b$都向$gcd(a,b)$转化,次数为0~2 判断$k$是不是在两者之间即可。 #代码 const int maxn=2e5+100; int cul(int x){ int res=0; 阅读全文
摘要:
传送门 #题意: 有$x$个红糖果和$y$个蓝糖果,有两种礼物包装方式: $1.a$个红糖果$+b$个蓝糖果 $2.b$个红糖果$+a$个蓝糖果 求最多能够打包成多少个礼物 #思路: 假设第一种打包了$c$个礼物,第二种打包了$d$个礼物,一共打包了$c+d$个礼物。 考虑二分答案,也就是$c+d= 阅读全文
摘要:
问题描述 口算题生成系统 功能: (1)口算:题目显示在界面上(除法必须是整除),逐个显示题目,用户通过输入框输入计算结果。系统能实时统计正确率,将错误题目打印到文件里。 (2)生成题目:用户选择生成的题目数量,打印时的列数,运算符的数量,将题目生成到docx文件里。 设计说明 (1)拟设计的功能及 阅读全文
摘要:
#题意: 给一个数组,求元组个数满足: \(l<=a[i]+a[j]<=r,i<j\) #思路: 移项后:\(l-a[i]<=a[j]<=r-a[i]\) 二分查找即可。 注意最后答案会爆$int$ #代码: const int maxn=2e5+100; int n,a[maxn],l,r; in 阅读全文