暴力
Devil_Gary
这个作者很懒,什么都没留下…
展开
-
BZOJ3251 暴力
发现只有斐波那契这种形式的数才不能构成三角形 INT范围内只有50多项 所以暴力跑 小于50暴力判断 大于50直接输出YES#include<bits/stdc++.h> #define ll long long using namespace std; const int N=1e5+5; inline int read() { int x=0,f=1;char ch=getchar();原创 2017-10-16 14:28:33 · 566 阅读 · 0 评论 -
BZOJ4245 二进制贪心
对于第i位 只有每段第i位都为0 结果才为0 所以要最小的话 从最高位开始判断是否可以为零 具体的求出前缀xor的值 如果第i位偶数个1 那就可以偶数个分一组 这样最后or的结果是0 在奇数个的位置打上标记 即不能在这里分开(这里分开的话or下来肯定是1) 扫完一遍如果 总标记+m-1<=n 那就有分成m段的方案 每一位这样贪心就能得到最小值#include<bits/stdc++.h> #defi原创 2017-10-16 14:36:13 · 691 阅读 · 3 评论 -
51NOD 1419
很显然最小公倍数 n为偶数是n-1*n-2 *n-3和n*n-1*n-3的最小公倍数取max 奇数就是n-1*n-2 *n-3 特判1 2就好了#include<bits/stdc++.h> #define ll long long /* char *TT,*mo,but[(1<<15)+2]; #define getchar() ((TT==mo&&(mo=(TT=but)+fread(but,1原创 2017-10-17 16:13:57 · 281 阅读 · 1 评论 -
51NOD 1615
还是暴力 从1开始一直加 要是比n大了 做差看是不是偶数 偶数的话就直接输出 不然就继续加 证明的话 如果差△s是偶数的话 就在之前的+(△s/2)变成-(△s/2) 很好想#include<bits/stdc++.h> #define ll long long /* char *TT,*mo,but[(1<<15)+2]; #define getchar() ((TT==mo&&(mo=(TT=b原创 2017-10-17 16:16:15 · 257 阅读 · 1 评论