這樣的題目大概是我現階段能力的極限了吧
第一步,統計每乙個點在水平和豎直方向上能雙向延申的最長長度
第二步,統計每乙個點在四個方向上能延伸的最長長度(取min)
第三部,用到乙個技巧,就是乙個線段[le,ri]可以表示為2個點,即從le開始,從ri+1結束
想到之前做到過的乙個題,有很多條線段[le,ri],給出a,b,求在[a,b]範圍內有有多少個點被奇數條線段覆蓋
怎麼做,有一點點技巧,記錄每條線段的le和ri+1,弄個陣列a[max(ri)],遍歷,每個a[le]++,每個a[ri+1]--;
再統計出字首和l[max(ri)],再從a遍歷到b,中途有多少個a[i]&1==1的,就有多少個點被奇數條線段覆蓋
聯想:其實用到這種思想的,我算是做過兩遍了,還遇到過牛b的一道題,這種思想是利用字首和統計在數列上的線段,
這題只是統計有沒有被覆蓋,牛客競賽裡面還有乙個更牛的,統計區間的交叉,不寫部落格我還差點忘了
意思就是給出很多線段,求從哪條線段開始,出現了線段的交叉,隨機加字首和就能過:
**:
//problem:
//date:
//skill:
//bug:
/definations/
//迴圈控制
#define clr(a) memset((a),0,sizeof(a))
#define f(i,a,b) for(int i=a;i<=int(b);++i)
#define f2(i,a,b) for(int i=a;i>=int(b);--i)
#define re(i,n) for(int i=0;iusing namespace std;
const int inf = 0x3f3f3f3f;
const long long llinf = 0x3f3f3f3f3f3f3f3f;
options//
typedef long long ll;
#define stdcpph
#define cpp_io
#ifdef stdcpph
#include#else
#include#include#include#include#include#include#include#ifdef cpp_io
#include#include#include#else
#include#endif
#endif
basic functions//
templateinline void in(inint &x)
while (c >= '0'&&c <= '9')
x *= f;
}templateinline void out(inint x)
added functions//
const int maxn = int(1e3+4);
int n, m;
int h[maxn][maxn], s[maxn][maxn];
//int l[maxn][maxn], to[maxn][maxn];
int used[maxn][maxn];
char ma[maxn][maxn];
void pr()
} }}code/
int main()
else
if (l == 0)l = j;
else continue;}}
re2(j, m)
else
if (l == 0)l = i;
else continue;
}} re2(i, n)re2(j, m)h[i][j] = min(h[i][j], s[i][j]);
bool flag(1);
re2(i, n)
; re2(j, m)if (h[i][j])++cor[j - h[i][j]], --cor[j + h[i][j] + 1];
re2(j, m)cor[j] = cor[j - 1] + cor[j];
re2(j, m)if (cor[j])used[i][j] = 1;
} re2(j, m)
; re2(i, n)if (h[i][j])++cor[i - h[i][j]], --cor[i + h[i][j] + 1];
re2(i, n)cor[i] = cor[i - 1] +cor[i];
re2(i, n)if (cor[i])used[i][j] = 1;
} re2(i,n)re2(j,m)
if (!used[i][j] && ma[i][j] == '*')
if (!flag)cout << "-1" << endl;
else pr();
} ///
return 0;
}
hql2(通用分頁)
basedao sql和hql通用分頁 的區別 通過書籍名字模糊查詢資料,並且具備分頁的功能 hql通用分頁 方法分享 public class basedao object value null 給query賦值 for map.entryentry map.entryset 陣列型別 else ...
C 程式設計思想 卷二 通用演算法
判定函式 例 只把數值1中滿足條件的值複製到陣列2中 remove copy if 演算法對輸入序列的每個元素都應用gt15 並且在向輸出序列寫入時忽略掉那些使判定函式產生真值的元素。流迭代器 例 輸出流迭代器 例 輸入流迭代器 remove copy if 的第1個引數,把乙個istream it...
H2通用快取載入
自己隨意學習使用h2 資料庫,現需要在專案啟動時,將 表資訊,排序資訊等不常變動的基礎資訊快取到 h2記憶體資料庫中,1.建立固定格式的abstract class 或 inte ce,其需要宣告 初始化 init 建立h2快取表 create 插入資料 insertdata 初始化完成 inite...