蓝桥杯刷题九
创始人
2024-05-29 17:53:39
0
  1. 油漆面积

这题的暴力竟然能过。。。 实际上分析时间复杂度是不能过的

先给暴力代码

#include 
using namespace std;
const int N=1e4+10;
bool st[N][N];
int sum;
int n;
int main()
{cin>>n;while(n--){int x,y,x1,y1;cin>>x>>y>>x1>>y1;if(x>x1) swap(x,x1);if(y>y1) swap(y,y1);for(int i=x;i

扫描线加线段树代码 不会做啊待补

#include 
#include 
#include using namespace std;const int N = 1e4 + 10;struct Segment {int x, y1, y2;int k;bool operator < (const Segment &t)const {return x < t.x;}
} seg[N * 2];struct Node {int l, r;int cnt, len;
} tr[N * 4];void pushup(int u) {if (tr[u].cnt > 0)  tr[u].len = tr[u].r - tr[u].l + 1;else if (tr[u].l == tr[u].r)  tr[u].len = 0;else  tr[u].len = tr[u << 1].len + tr[u << 1 | 1].len;
}void build(int u, int l, int r) {tr[u] = {l, r};if (l == r)  return;int mid = l + r >> 1;build(u << 1, l, mid), build(u << 1 | 1, mid + 1, r);
}void modify(int u, int l, int r, int k) {if (tr[u].l >= l && tr[u].r <= r) {tr[u].cnt += k;pushup(u);}else {int mid = tr[u].l + tr[u].r >> 1;if (l <= mid)  modify(u << 1, l, r, k);if (r > mid)   modify(u << 1 | 1, l, r, k);pushup(u);}
}int main() {int n;  scanf("%d", &n);int m = 0;for (int i = 0; i < n; i ++) {int x1, y1, x2, y2;scanf("%d%d%d%d", &x1, &y1, &x2, &y2);seg[m ++] = {x1, y1, y2, 1};seg[m ++] = {x2, y1, y2, -1};}sort(seg, seg + m), build(1, 0, 10000);int res = 0;for (int i = 0; i < m; i ++) {if (i > 0)  res += tr[1].len * (seg[i].x - seg[i - 1]. x);modify(1, seg[i].y1, seg[i].y2 - 1, seg[i].k);}return printf("%d\n", res), 0;
}

但是不知道为什么错了一个点

  1. 差分

差分就是基础题

#include 
using namespace std;
const int N=1e5+10;
int s[N];
int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++)cin>>s[i];for(int i=n;i>=1;i--)s[i]-=s[i-1];while(m--){int l,r,c;cin>>l>>r>>c;s[l]+=c,s[r+1]-=c;}for(int i=1;i<=n;i++){s[i]+=s[i-1];cout<
  1. 二维差分

也是一个模板 背过或者简单推一下就好

#include 
using namespace std;
const int N=1010;
int s[N][N];int main()
{int n,m,q;cin>>n>>m>>q;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){int x;cin>>x;s[i][j]+=x;s[i+1][j]-=x;s[i][j+1]-=x;s[i+1][j+1]+=x;}while(q--){int x1,y1,x2,y2,c;cin>>x1>>y1>>x2>>y2>>c;s[x1][y1]+=c;s[x1][y2+1]-=c;s[x2+1][y1]-=c;s[x2+1][y2+1]+=c;}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)cout<

相关内容

热门资讯

军训的感受优秀作文 军训的感受优秀作文10篇  在平平淡淡的学习、工作、生活中,大家都写过作文,肯定对各类作文都很熟悉吧...
睡前童话故事哄小朋友短篇 睡前童话故事哄小朋友短篇(精选111篇)  童话故事是指儿童文学的一种体裁,童话中丰富的想象和夸张可...
未来的想象作文 关于未来的想象作文10篇  在学习、工作或生活中,大家总少不了接触作文吧,作文可分为小学作文、中学作...
我学会了做饭作文 我学会了做饭作文(通用13篇)  在生活、工作和学习中,大家都不可避免地要接触到作文吧,作文是一种言...
成就自己的价值作文 成就自己的价值作文(通用43篇)  在现实生活或工作学习中,大家一定都接触过作文吧,作文是一种言语活...
守护树散文作文1200字 守护树散文作文1200字  我出生在一个美丽的村庄。在我3岁时,父母相继去世了。在我的童年里,满是黑...
说说我自己作文 说说我自己作文集锦15篇  随着社交网络的迅猛发展,越来越多人会在网上发布说说,用以记录和分享生活日...
走进信息世界作文400字 走进信息世界作文400字七篇  在学习、工作乃至生活中,大家都不可避免地要接触到作文吧,写作文可以锻...
我变成了一只小鸟作文 我变成了一只小鸟作文300字(精选61篇)  在平时的学习、工作或生活中,大家总少不了接触作文吧,根...
写给自己的一封信作文 写给2021年自己的一封信作文(精选15篇)  在平平淡淡的日常中,大家都不可避免地会接触到作文吧,...
豆芽成长记观察日记 豆芽成长记观察日记(精选20篇)  一天终于结束了,这一天里,大家身边一定有一些有趣的见闻吧,这时候...
我未来的家乡作文 我未来的家乡作文(通用9篇)  在平凡的学习、工作、生活中,许多人都写过作文吧,作文是人们以书面形式...
写给的自己作文 写给2035年的自己作文15篇  在学习、工作或生活中,大家或多或少都会接触过作文吧,通过作文可以把...
我们的校园四年级下册语文第一... 我们的校园四年级下册语文第一单元作文(精选38篇)  在学习、工作、生活中,许多人都写过作文吧,借助...
我学会了感恩作文 我学会了感恩作文范文10篇  导语:感恩可以让人看到人生美好的一切。让我们做一个心存感恩的人,这样的...
修炼自己作文 修炼自己作文3篇  在我们平凡的日常里,大家都尝试过写作文吧,作文根据写作时限的不同可以分为限时作文...
植物的观察日记 关于植物的观察日记(精选18篇)  一天即将过去了,这一天里,大家身边一定有一些有趣的见闻吧,是时候...
二十年后回故乡作文500字 关于二十年后回故乡作文500字(精选38篇)  在学习、工作、生活中,说到作文,大家肯定都不陌生吧,...
让我敬佩的一个人作文 让我敬佩的一个人作文(通用61篇)  在平平淡淡的日常中,大家都有写作文的经历,对作文很是熟悉吧,作...
竞选班干部演讲稿 竞选班干部演讲稿(通用29篇)  演讲稿是在一定的场合,面对一定的听众,演讲人围绕着主题讲话的文稿。...