暴力
mengsz1
我爱学习
展开
-
K-Periodic Array CodeForces - 371A
题意:n长的数组,只有1,2,分成n/k段,要求每一段完全相同。题解:把数组分成 n / k 段,看每一段的第 i ( i 从 0 ~ k )个数字是 1 多还是 2 多,如果 1 多就加上 2的次数,反之,就加 1 的次数。#include<bits/stdc++.h>#include<cstring>using namespace std;int ss[1...原创 2018-10-09 21:51:30 · 171 阅读 · 0 评论 -
Magic Forest
题目大意:找小于等于n的三个数,既能组成三角形,也要抑或值为0;题解:第一条边为i,从1开始,第二条边为j,从i开始 1.先是i^j,再用0^(i^j)得到第三条边 2,若第三条边大于等于j小于等于n,并且能构成三角形(这里是两小边之和大于第三边)则OK。//亦或的简单运用 #include&lt;iostream&gt;#include&lt;cstdio&gt;#...原创 2018-08-10 23:15:56 · 266 阅读 · 0 评论 -
4 Values whose Sum is 0
题解: 1.计算出A,B中所有元素两两的和,放到s1里。 2.计算C,D中所有元素两两的和,放到s2里。 3.对s1进行排序。 4.遍历s2的每一个元素,用二分法的方式在s1里找出和它相加为0的值#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;cstdio&gt;#include&lt;algorithm&原创 2018-08-10 23:38:41 · 155 阅读 · 0 评论 -
Color the ball 扫描线
引用块内容 题解: 1.没接收一个区间,比如i,j,记录次数的数组arr[i]++,arr[j+1]–; 2.最后得出第i个点出现次数的值时,cout&amp;amp;amp;amp;amp;lt;#include&amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;lt;cstring&a原创 2018-08-10 23:45:18 · 95 阅读 · 0 评论 -
Non-square Equation
题解: 公式推导: x = (-s(x)+sqrt( s(x)*s(x) + 4*n ) )/2; 1.n最大是1e18,因为x2 + s(x)·x - n = 0, 所以x*x&lt;=n,所以x最大也就是1e9, 因此,s(x)最大也就是9个9,是81, 2,枚举s(x)的所有情况,计算出x,如果x是个整数,并且x各个位置之和等于s(x),那么就把他记录下来, 并且找出最小...原创 2018-08-10 23:58:25 · 182 阅读 · 0 评论 -
Square HDU - 1518
#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;int T,a[30],vis[30],n,flag,sum,goal,maxn; bool cmp(int a,int b){原创 2018-08-12 08:54:47 · 111 阅读 · 0 评论 -
Sticks POJ - 1011
借鉴的这个人的题解: 说一下三条剪枝函数,当运行到剪枝函数,可以理解为搜索失败了。 1.第一个剪枝:如果当前搜索a[i]时,发现因为a[i]的原因不能使木棍分成等长的几部分,当goal等于a[i]时,也就不需要在搜索了。 2,第二个剪枝:(引上面博客内容)假设 要搜索目标长度为 7 :绳长有 7 6 3 2 2. 假设 第一个7 搜索完,接下来搜索6 发现6没有1来配对,程序会接...原创 2018-08-12 00:08:22 · 225 阅读 · 0 评论 -
Unique Snowflakes UVA - 11572
大意:求最大不重复连续数列的长度 题解: 1.段查找问题,紫书上有,滑动窗口方式。 2.用set集合类存储,用set存数是有序的 3.先给定一个区间长度,当右端数字在set中一直没出现就一直往右扩展while(!st.count(a[r])&&r<=n) st.insert(a[r++]); 4.当重复时,去掉左端的数字st.erase(a[l++]); 5....原创 2018-08-11 23:39:52 · 118 阅读 · 0 评论 -
Cave Painting
这里写链接内容k很小的时候,能满足的n已经很大了,对k进行遍历,如果(n%i) == i-1,直到最后,那么它就成立#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace s原创 2018-08-11 00:12:08 · 345 阅读 · 0 评论 -
Three displays
题解: 从整个数列中间挑一个数s[k],c[k],从左边挑一个s[i]小于它的并且是c[i]最小的,从右边挑一个 s[i]大于它的,c[i]最小的,每一轮进行一次比较:m3 = min(m3,(m1+c[i]+m2));#include<iostream>#include<cstdio>#include<cstring>#include&l...原创 2018-08-11 00:07:28 · 187 阅读 · 0 评论