只有比赛现场的暴力代码留念,复盘题解见具体题目

T1 耗时20mins,暴力枚举,复杂度O(nQ),期望得分50

#include<iostream>
#include<algorithm>
using namespace std;#define mod 998244353
const int maxn = 1e6+10;
typedef long long LL;LL n, a[2010][maxn], len;//第i次操作后j的值,已经操作了几次
void change(int x){for(int i = len+1; i <= x; i++)for(int j = 1; j <= n; j++)a[i][j] = a[i-1][j]+a[i-1][j%n+1];
}int main(){cin>>n;for(int i = 1; i <= n; i++)cin>>a[0][i];int Q;  cin>>Q;for(int i = 1; i <= Q; i++){int x, y;  cin>>x>>y;if(x > len)change(x);cout<<(a[x][y]%mod)<<'\n';}return 0;
}

T2 耗时20mins

  • 给定一个序列
  • 每次可以合并两个数得到一个新数,结果为较小的数的两倍
  • 任意次操作后,能得到的最大数是多少。

贪心,每次选最小的两个合并,,我也不知道为什么这样,只是隐隐感觉。。。可是明明样例都过了啊。期望得分0 or 60

#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 1e7+10;int n, m, seed, a[maxn];
priority_queue<int, vector<int>, greater<int> >q;
void generate_array(int a[], int n, int m, int seed) {unsigned x = seed;for (int i = 0; i < n; ++i) {x ^= x << 13;x ^= x >> 17;x ^= x << 5;//a[i] = x % m + 1;q.push(x%m+1);}
}int main(){cin>>n>>m>>seed;generate_array(a,n,m,seed);while(q.size()!=1){int a = q.top();  q.pop();int b = q.top();  q.pop();int t = 2*min(a,b);q.push(t);}cout<<q.top()<<'\n';return 0;
}

T3

没看懂题+没什么想法。耗时10mins,输出2,期望得分0

#include<iostream>
using namespace std;
int main(){cout<<2<<'\n';return 0;
}

T4

  • 在n行m列的棋盘上放2*n个炮,让他们互不攻击
  • 求方案数

我不知道炮的攻击是不是同行隔着一个棋子的。。。

所以也就是每行每列最多放2个?枚举每个状态,判断列是否攻击(个数大于2剪枝剪掉),复杂度好像O(nCm2∗logn)( nC_m^2 * logn)(nCm2​∗logn) ,也许会小一点。,期望得分20。耗时40mins

#include<iostream>
#include<bitset>
#include<map>
using namespace std;
#define mod 998244353
const int maxn = 100010;
int n, m, ans;
map<int, bitset<10010> >c; int num[maxn];//第i列有几个炮
void dfs(int cur){if(cur == n){ans = (ans+1)%mod;return ;}for(int i = 0; i < m; i++){//枚举所有状态for(int j = 0; j < i; j++){//都到m的话,i<j一次,j<i一次就会有重复,且满足行条件i!=j//c[cur] = (1<<i)|(1<<j);bitset<10010>s; s[i]=1; s[j]=1;  c[cur] = s;num[i]++, num[j]++;if(num[i]<=2&&num[j]<=2)dfs(cur+1);//可行性剪枝num[i]--, num[j]--;}}
}
int main(){cin>>n>>m;dfs(0);cout<<ans<<'\n';return 0;
}

整个:
耗时1h30mins,最后1h直接弃坑(貌似一开始就没打算写标程?)。
期望得分50+30+0+20 = 100。。。

实际得分0+20+0+20=40。。。

【LGR-050】洛谷8月月赛相关推荐

  1. Mdoi R2 洛谷4月月赛I

    Mdoi R2 洛谷4月月赛I DIV2 A Car 题目描述 在MDOI市, 为了推行环保, 一辆车是否被限行的依据时车牌号和当天的日期. 车牌号的编码方式是这样的: **·**前三位均为大写字母, ...

  2. 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心

    题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi​,地面的高度是 h_0 = 0 ...

  3. 洛谷10月月赛 2 t2 深海少女与胖头鱼

    洛谷10月月赛 2 t2 深海少女与胖头鱼 题目链接 参考资料:洛谷10月赛2讲评ppt; 本篇题解考完那天就开始写,断断续续写到今天才写完 本题作为基础的期望dp题,用来学习期望dp还是很不错的 ( ...

  4. 洛谷11月月赛(284pts rank85)

    https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...

  5. P8318 『JROI-4』淘气的猴子(【LGR-108】洛谷 5 月月赛 I JROI R4 Div.2)

    众所周知,jockbutt 是一个可爱的女孩纸. 题目描述 jockbutt 有一个正整数序列,长度为 n,分别为 a1,a2...an,她非常喜欢这个序列,平时都非常爱惜它们. 可是有一天,当 jo ...

  6. 【洛谷月赛】洛谷11月月赛·Day1

    洛谷2614 计算器弹琴 本题地址: http://www.luogu.org/problem/show?pid=2614 题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参 ...

  7. 洛谷 2 月月赛 I 『MdOI R4』 (Div2) A ~ D 四题全,也许会有六题,超高质量题解 (Div.1E、F下辈子一定补)【每日亿题2 / 9】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.P7337 『MdOI R4』Fun B.P7338 『MdOI R4』Color C.P7 ...

  8. CONTEST199 [有奖]洛谷8月月赛题解

    http://www.luogu.org/contest/show?tid=199 T1: 集合求和 可以找一下规律,对于一个包含n个元素的集合,每个元素在所有子集中出现的次数均为2^(n-1),将s ...

  9. 洛谷10月月赛Round.1| P3399 丝绸之路 [DP]

    题目背景 张骞于公元前138年曾历尽艰险出使过西域.加强了汉朝与西域各国的友好往来.从那以后,一队队骆驼商队在这漫长的商贸大道上行进,他们越过崇山峻岭,将中国的先进技术带向中亚.西亚和欧洲,将那里的香 ...

  10. 洛谷2017-2月月赛

    打CF前随便打打,看了一眼只会做签到题,还挂了一次,95/400. A.富金森林公园 题目大意:给一个长度为n的数列,支持两种操作:1.修改一个数的值:2.给出一个k,问有多少段数大等于k.(N< ...

最新文章

  1. .net core引用错误的Entity Framework而导致不能正常迁移数据的解决办法
  2. FW : 一只小青蛙的一生(图片连载)
  3. django mysql 表单_Python Django 表单提交数据到mysql并展示
  4. 力扣——寻找两个有序数组的中位数
  5. 富爸爸系列之三富爸爸投资指南
  6. SpringBoot 2.0.x应用修改默认的端口号
  7. matlab不能radon变换,Radon变换的理解
  8. Ubuntu 16.04.5 (x86_64)下安装CUDA10 for 深度学习
  9. 4、51单片机——LCD1602 驱动(郭天祥)
  10. win7系统64位安装MATLAB(R2016)
  11. 大计划,大安排(一)
  12. idea关于找不到包的问题,比如:Java:程序包org.springframework.beans.factory.annotation不存在
  13. Nginx 配置示例
  14. python修改单个文件
  15. R语言使用ifelse函数进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为两个类别的离散变量(分类变量)
  16. 常用的解决网络出现黄叉的方法
  17. 基于arduino及PS2的麦克纳姆轮遥控小车
  18. 喜报:冲量数据交易平台荣获2021中国软件技术大会创新产品奖
  19. C语言实现网络嗅探器
  20. 【正点原子FPGA连载】第四十三章MT9V034摄像头RGB-LCD显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

热门文章

  1. 【脑经急转弯】—— 灯亮还是灭?
  2. Linux Tricks —— 快速清空文本文件内容、文本内容追加(tee)
  3. 构建复杂的应用程序 —— 重用与重构
  4. 深度学习实践指南(五)—— 求解异或问题
  5. 【剑指 offer】(十)—— 二进制形式 1 的个数
  6. C++基础::便捷函数
  7. csrf token invalid什么意思_Spring Cloud Gateway 实现Token校验
  8. mpls 保留标签值_浅析MPLS多协议标签交换的发展历程
  9. 零基础自学python-零基础如何自学成为Python高手?
  10. python工资高还是java-Python工资高还是Java工资高?Python和Java学哪个?