从高位开始模拟这一位数也就是说先试这一位是0如果能通过测试,那么直接答案加上这个否则验证1,如果1通过测试还得验证当前加上1是否会超出m的范围其他的就是1<<30最多,还因为1<<31成了符号位而90分
1 |
|
从高位开始模拟这一位数也就是说先试这一位是0如果能通过测试,那么直接答案加上这个否则验证1,如果1通过测试还得验证当前加上1是否会超出m的范围其他的就是1<<30最多,还因为1<<31成了符号位而90分
1 | #include <bits/stdc++.h> |
1 | #include <bits/stdc++.h> |
对于y^x=z(mod p)
判断y%p如果y%p是0的话那么没有答案,之后y%=p,z%=p如果z是1的话那么输出0剩下的就是正常的操作了
1 | #include <bits/stdc++.h> |
1 | typedef long long ll; |
#语法错误判断
F 与 E之间只需要加一个变量看一看是不是最终等于0即可,F ++ E –,然后就是判断变量是否被重复使用.在传统的NOIP2017的数据中没有这样的
1 | F i 1 n |
如果判断不当那么这里会输出ERR的,所以我的做法是开一个栈记录一下进去的字母,然后遇到E弹出抹去标记
#复杂度计算
模拟判断变量后面第一个数是不是数字如果是分两步走
一:如果是数字那么判断一下第二个是不是变量如果是cs++否则判断两个数大小,如果颠倒那么下面的F不记录次数
二:如果是变量直接后面不记录次数
1 | #include <bits/stdc++.h> |