攔截飛彈 加了神奇的位運算

2022-04-30 02:21:12 字數 569 閱讀 9432

傳送門 :洛谷 p1020 飛彈攔截

思路 : 第一問為求一段序列 的最長不下降子串行的長度 

第二問求得是 不下降子串行的個數

對於第一問,跑一邊 最長不下降子串行即可

對於第二問, 依舊是跑一邊第一問即可 (霧)

其實還要加一點神奇的位運算。。

#include #include 

#include

#define max 1000

using

namespace

std;

intn, m;

intheigh [max], dp_1[max], dp_2 [max];

intdp [max];

int max_answer , total = 1

;int make (int dp , bool

flag)

intmain()

total--;

cout

<< make (dp_1, 0)

<< make (dp_2, 1)

}

神奇的位運算 bitwise trick

在計算機中,資料都以二進位制補碼的形式儲存,根據這一特點,適當採用位運算 bitwise operation 可以很巧妙地解決問題,同時運算效率更高。時刻牢記,最大的負數是 1,在計算機中,它的儲存形式是全1。左移相當於乘以2,友誼相當於除以2.在計算機中,位運算比乘法 除法運算要快得多,所以適當採...

位運算的神奇用法

按位與如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0 按位或兩個相應的二進位制位中只要有乙個為1,該位的結果值為1 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 取反 是一元運算子,用來對乙個二進位制數按位取反,即將0變1,將1 左移用來將乙個數的各二進位制位全部左移n位...

神奇的按位運算 python

先來看leetcode 29上的divide two integers題目要求 divide two integers without using multiplication,division and mod operator.if it is overflow,return max int.就是...