Educational Codeforces Round 48

Educational Codeforces Round 48


C.Vasya And The Mushrooms

思路很简单,走法有一个统一形式就是先上下走,然后到某个位置左右一个来回。然后就推一下,后边那段的递推式子,枚举改变走法的位置即可。看出做法之后发现要推个式子,于是跑去写D了。。。然后D一开始思路错了。。。凉啊

#include <bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define pb push_back
#define PII pair<int,int>
#define MP make_pair
#define fr first
#define sc second
#define mem(WM) memset(WM,0,sizeof(WM))
typedef long long ll;
typedef unsigned long long ull;
const int N = 3e5 + 7;
using namespace std;
int n;
ll a[N][2],b[N][2],sum[N][2],s[N],A[N][2],num[N][2];
int main() {scanf("%d",&n);rep(i,1,n)scanf("%I64d",&a[i][0]);rep(i,1,n)scanf("%I64d",&a[i][1]);rep(i,1,n) s[i] = s[i-1] + a[i][0]+a[i][1];sum[n][0] = a[n][1];sum[n][1] = a[n][0];per(i,n-1,1) {sum[i][0] = (s[n]-s[i]) + sum[i+1][0] + ((n-i+1)*2-1)*a[i][1];sum[i][1] = (s[n]-s[i]) + sum[i+1][1] + ((n-i+1)*2-1)*a[i][0];}ll ans = sum[1][0];int sy=0,cc=0;rep(i,1,n) {A[i][sy] = A[i-1][sy] + cc*a[i][sy];num[i][sy] = cc;sy^=1;++cc;ans = max(ans,A[i][sy]);A[i][sy] = A[i][sy^1] + cc*a[i][sy];num[i][sy] = cc;ans = max(ans,A[i][sy]);++cc;}sy = 1;rep(i,1,n) {ll tmp = A[i][sy] + sum[i+1][sy] + (s[n] - s[i])*(num[i][sy]+1);ans = max(ans,tmp);sy^=1;}printf("%I64d\n",ans);return 0;
}

D.Vasya And The Matrix

给定横纵的异或值,让你求一个符合条件的矩阵。拆位之后,通过一行一列控制异或值,再检查以下最后一列/行是否满足条件即可。

#include <bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define pb push_back
#define PII pair<int,int>
#define MP make_pair
#define fr first
#define sc second
#define mem(WM) memset(WM,0,sizeof(WM))
typedef long long ll;
typedef unsigned long long ull;
const int N = 1e5 + 7;
const ll mod = 1e9 + 7;
using namespace std;int n, m;
ll mp[111][111],a[111],b[111],r[111],c[111];
ll ans[111][111];
int solve() {rep(i,1,m-1) {if(c[i]==0) rep(j,1,n) mp[j][i]=c[i];else {mp[1][i] = 1;rep(j,2,n) mp[j][i]=0;}}rep(i,1,n) {ll x=0;rep(j,1,m-1) x^=mp[i][j];if(x==r[i]) mp[i][m] = 0;else mp[i][m] = 1;}ll x=0;rep(i,1,n)x^=mp[i][m];if(x==c[m]) return 1;rep(i,1,n-1) {if(!r[i]) rep(j,1,m) mp[i][j]=r[i];else {mp[i][1] = 1;rep(j,2,m) mp[i][j] = 0;}}rep(i,1,m){ll x=0;rep(j,1,n-1)x^=mp[j][i];if(x==c[i]) mp[n][i] = 0;else mp[n][i] = 1;}x=0;rep(i,1,m)x^=mp[n][i];if(x==r[n]) return 1;return -1;
}
int tmp[111];
int main() {scanf("%d%d",&n,&m);rep(i,1,n) scanf("%I64d",&a[i]);rep(i,1,m) scanf("%I64d",&b[i]);rep(x,0,30) {rep(i,1,n) r[i] = !!(a[i]&(1<<x));rep(i,1,m) c[i] = !!(b[i]&(1<<x));int t = solve();if(t == -1)return puts("NO"),0;rep(i,1,n)rep(j,1,m)ans[i][j] += (mp[i][j]<<x);}puts("YES");rep(i,1,n) {rep(j,1,m) printf("%I64d ",ans[i][j]);puts("");}return 0;
}

E. Rest In The Shades

大概做法懂了,对每个询问的点它和下方的那个光源的轨迹会形成一个三角形,二分求x轴上两条边中间的覆盖区域即可。这个可以预处理前缀和。二分两个边界,两边要特判一下相交。然后相似三角形即可求出在轨迹上的投影。。。

转载于:https://www.cnblogs.com/RRRR-wys/p/9417149.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软发布Azure Service Fabric Mesh公开预览版

Service Fabric现在在云端有了一个新亲戚——Azure Service Fabric Mesh&#xff0c;Azure的一个完全托管服务&#xff0c;开发人员现在可以基于此服务部署和运行容器化应用程序。在去年五月的Build 2018大会期间首次亮相后&#xff0c;现在开始进行公开预览。在Build 2018大会…

【DP】楼梯(jzoj 1520)

楼梯 jzoj 1520 题目大意&#xff1a; 有n个楼梯&#xff0c;跳跃高度初始值是1&#xff0c;当往后一层时&#xff0c;跳跃高度就2&#xff0c;当跳跃只能跳跃到当前能跳到楼梯&#xff0c;且跳跃之后&#xff0c;跳跃高度变回1&#xff0c;问跳到第n层最少花几步 样例输入…

P5502-[JSOI2015]最大公约数【分治】

正题 题目链接:https://www.luogu.com.cn/problem/P5502 题目大意 nnn个数&#xff0c;求一个L,RL,RL,R使得最大化(R−L1)∗gcd(aL,aL1,aL1...aR−1,aR)(R-L1)*gcd(a_L,a_{L1},a_{L1}...a_{R-1},a_R)(R−L1)∗gcd(aL​,aL1​,aL1​...aR−1​,aR​) 解题思路 考虑分治&#x…

牛客网暑期ACM多校训练营(第五场)

牛客网暑期ACM多校训练营&#xff08;第五场&#xff09; A. gpa 二分答案&#xff0c;然后就转化为是否满足\(\frac {\sum s[i]c[i]}{\sum s[i]} ≥ D\), \(\sum s[i]c[i] ≥ \sum s[i]D\), \(\sum s[i](c[i]-D) ≥ 0\) 显然科目越少gpa越高&#xff0c;于是去掉最小的k个判断…

.NET Core TDD前传: 编写易于测试的代码 -- 缝

有时候不是我们不想做单元测试, 而是这代码写的实在是没法测试....举个例子, 如果一辆汽车在产出后没完成测试, 那么没人敢去驾驶它. 代码也是一样的, 如果项目未能进行该做的测试, 那么客户就不敢去使用它, 即使使用了也会遇到“车祸”. 为什么要测试/测试的好处它可以尽早发现…

【数位DP】好数(jzoj 1521)

好数 jzoj 1521 题目大意&#xff1a; 定义好数为转换为二进制后&#xff0c;有至少三个连续的位相同的数&#xff0c;现在要求一个范围内的好数个数 样例输入 0 16样例输出 5数据范围限制 0 < Low < UP < 2147483647 提示 提示&#xff1a; 对于50%测试&…

P4294-[WC2008]游览计划【斯坦纳树】

正题 题目链接:https://www.luogu.com.cn/problem/P4294 题目大意 n∗mn*mn∗m的网格&#xff0c;每个格子的修建费用不同&#xff0c;要求修建费用最小连接所有关键点。 解题思路 设fs,i,jf_{s,i,j}fs,i,j​表示目前连接关键点状态为sss&#xff0c;在(i,j)(i,j)(i,j)这个位…

「LibreOJ NOIP Round #1」旅游路线

「LibreOJ NOIP Round #1」旅游路线 题目链接 做法&#xff1a; 首先肯定要预处理些东西&#xff0c;来使单词询问达到\(o(logn)\)或者\(o(1)\)的复杂度&#xff0c;又因为距离这个东西的范围太大&#xff0c;我们考虑预处理一些费用相关的东西。考虑\(dp[s][j]\)表示从s出发花…

【招聘(北京)】东方国信 工业互联网

从工业领域的业务出发&#xff0c;结合现有的物联网、大数据、云计算等技术进行体系化建设。自主研发的智能检测传感器、自主开发的部署在生产单位的专家系统、自主设计通讯交互协议、自主开发的工业物联网通讯框架、自主开发的分布式存储中间件、自主研发的机理模型&#xff0…

纪中C组模拟赛总结(2019.7.5)

成绩&#xff1a; rankrankrank是有算其他dalaodalaodalao的 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4888lyflyflyf300300300100100100100100100100100100000111111hkyhkyhky280280280100100100100100100808080000121212wjjwjjwjj2702702701001001001…

2020牛客NOIP赛前集训营提高组(第四场)B-色球【链表】

正题 题目链接:https://ac.nowcoder.com/acm/contest/7611/B 题目大意 nnn个杯子&#xff0c;mmm个操作 在第zzz个杯子中依次加入xxx个颜色为yyy的球在第yyy个杯子中取出xxx个球&#xff0c;并询问最后一个拿出的球将第xxx个杯子的球依次拿出放入第yyy个杯子中 解题思路 每次…

POJ3613

POJ3613 题意&#xff1a;n条边构成的最短路 做法&#xff1a;倍增floyd #include <cstdio> #include <cstring> #include <algorithm> #define rep(i,a,b) for(int ia;i<b;i) typedef long long ll; const int N 207; const int inf 0x3f3f3f3f; using…

Ocelot-基于.NET Core的开源网关实现

写在前面API网关是系统内部服务暴露在外部的一个访问入口&#xff0c;类似于代理服务器&#xff0c;就像一个公司的门卫承担着寻址、限制进入、安全检查、位置引导等工作&#xff0c;我们可以形象的用下图来表示&#xff1a; 外部设备需要访问内部系统服务时必须要通过我们的AP…

【模拟】阿里郎(jzoj 2012)

阿里郎 jzoj 2012 题目大意&#xff1a; 有一个数n&#xff0c;求出它的所有约数d&#xff0c;有多少个约数就分多少种情况&#xff0c;每次分为d组&#xff0c;把1,d1,2d1……n-d1分为一组&#xff0c;以此类推&#xff0c;把2,d2,2d2……n-d2分为另一组&#xff0c;然后同…

[2020.10.25NOIP模拟赛]序列【Splay】

正题 题目链接:https://www.luogu.com.cn/problem/U136336?contestId36038 题目大意 第iii次找到第iii大的数字位置xix_ixi​并且翻转[i,xi][i,x_i][i,xi​]&#xff0c;求输出序列xxx 解题思路 记录一下每个排名在SplaySplaySplay中的位置&#xff0c;然后暴力翻转即可。 …

HDU2476

HDU2476 做法&#xff1a; 先想到用\(f[i]\)表示A的前i个字符变成B的最少涂得次数&#xff0c;不难写出方程&#xff0c;当\(A[i]≠B[i], f[i] max(f[j-1]cost[j][i])\), 当\(A[i]B[i]\)时&#xff0c;\(f[i]f[j-1]\) , \(cost[i][j]\) 表示将i到j涂成和B一样的最少的次数。现…

Blazor 0.5.0 升级及新特性介绍

前言喜大普奔&#xff0c; Blazor 0.5.0 在我刷了好几遍 Github &#xff08;表示功不可没&#xff09;以后&#xff0c;终于在 2018年7月25日发布了&#xff01;[Blazor 0.5.0 Announce] (https://blogs.msdn.microsoft.com/webdev/2018/07/25/blazor-0-5-0-experimental-rele…

【dfs】通行证(jzoj 2013)

通行证 jzoj 2013 题目大意&#xff1a; 有一个图&#xff0c;走某一条路需要某个通行证&#xff08;数据给出所有可选择的&#xff09;&#xff0c;现在要从某个点到另一个点&#xff0c;问最少要多少个通行证 样例输入 3 3 3 0 2 0 0 2 1 1 2 2样例输出 2 0 2数据范围限…

AT4378-[AGC027D]ModuloMatrix【构造】

正题 题目链接:https://atcoder.jp/contests/agc027/tasks/agc027_d 题目大意 n∗nn*nn∗n的网格&#xff0c;每个格子填一个数要求 所有数各不相同对于相邻的两个数ax,aya_x,a_yax​,ay​&#xff0c;max{ax,ay}%min{ax,ay}max\{a_x,a_y\}\%min\{a_x,a_y\}max{ax​,ay​}%mi…

HDU5693

HDU5693 做法&#xff1a; 同hdu2476也时两次dp的题&#xff0c;首先可以列出方程\(f[i] max(f[i-1], max(f[j-1](i-j1))*can[j][i])\)&#xff0c;\(can[j][i]\)表示从j到i能否完全消除。现在考虑如何求出\(can[l][r]\)&#xff0c;还是区间dp&#xff0c;任何一个长度≥2的等…