最初,最開始的時候,萬能的學姐曾經警告過我們,千萬別用什麼老獅子map,手擼map或者字典樹。。。當時不甚理解。。。今天。。。這題直接卡掉了我的map,但是使用樸素方法進行二分。。。不加優化,,都不需要這個架勢。。。直接相差了將近十倍,在我開了優化之後快了20倍左右。。。。
上**:
1 #include2using
namespace
std;34
const
long
long maxn=1233;5
67class
node8;
13 node nodes[maxn*maxn];
14bool
cmp(node n,node n1)
1518
long
long
n;19
long
long
arr[maxn];
20long
long
21long;22
long
long point=0;23
bool check(node &n1,node &n2)
2431
void
init()
3238
39for(int i=0;ii)
4048 }sort(nodes,nodes+point,cmp);49}
5051
bool succ=0;52
setlong>s1;
53int
main()
54pos++;73}
74if(succ)break;75
//cout<<"target: "<76}77
if(succ)cout<<"
yes"
<78else cout<<"no"
<79return0;
80 }
51nod1267 四個數和為0
先得到任意兩個數的和,從小到大排序,從兩邊向中間掃一遍就行了 include include using namespace std typedef long long ll int a 1005 struct nodesum 1005 1005 bool cmp struct node a,str...
51Nod1799 二分答案
lyk最近在研究二分答案類的問題。對於乙個有n個互不相同的數且從小到大的正整數數列a 其中最大值不超過n 若要找乙個在a中出現過的數字m,乙個正確的二分程式是這樣子的 l 1 r n mid l r 2 while l r 最終a r 一定等於m。但是這個和諧的程式被熊孩子打亂了。熊孩子在一開始就將...
51nod 1686 二分 尺取法
題意 給出陣列,區間的值為其重數 這個重數是指區間內的重數,不是整個陣列的重數 求解第k大小的區間值 重數 題解 思路 二分 尺取法 由上知 重數的範圍為 1 100000 重數值大的區間一定包括重數值小的區間 因此找到有大於等於k個區間值為mid就是答案了 注意 有可能第k大的值和第k 1個 或者...