
第一场
发布日期:2021-05-07 16:49:01
浏览次数:10
分类:原创文章
本文共 1605 字,大约阅读时间需要 5 分钟。
准备整理一下知识点了,之前说要刷kuangbin的提单(全绿)结果dp还没写完。先把牛客的比赛补一补吧,不想签到了。
B 括号
找规律的题,一开始想的是一个左括号,其余右括号,有个数限制。所以拆成 a 个左括号,b 个右括号,但是需要 ab=k,有些k不能拆成 (a+b<=1e5) 满足条件的 a 和 b ,所以先对 k -> sqrt(k),向下取整,然后做除做余,余表示 m—m=k-ab ,放到最左边,然后加一个右括号匹配,再放 a-m个 左括号,再放 b 个右括号—(a-m)b+mb 完成匹配。
#include<bits/stdc++.h>using namespace std;const int maxn=10010;const int mod=1e9+7;typedef long long ll;ll k;int main(){ cin>>k; if(k==0){ cout<<")("; return 0; } ll p=sqrt(k); ll r=k/p; ll l=k%p; for(int i=0;i<l;i++) cout<<"("; cout<<")"; for(int i=l;i<p;i++) cout<<"("; for(int i=0;i<r;i++) cout<<")"; return 0;}
I 限制不互素对的排列
赛中想到了,写了个寂寞,先分奇数偶数,偶数gcd一定不唯一(都能被2整除)然后还可以加两个值,就挑最小的3—6,5—10两对,放在两边。最后按需构造就好了。
#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;int f[maxn];int vis[maxn];int main(){ int n,k; cin>>n>>k; if(n<=5&&k==n/2) cout<<-1; else{ vector<int> ve; if(k==n/2){ for(int i=2;i<=n;i+=2){ if(i==6) continue; ve.push_back(i); } ve.push_back(6); ve.push_back(3); for(int i=1;i<=n;i+=2){ if(i==3) continue; ve.push_back(i); } }else{ for(int i=2;i<=2*k+2;i+=2){ ve.push_back(i); } for(int i=1;i<=2*k+2;i+=2){ ve.push_back(i); } for(int i=2*k+3;i<=n;i++){ ve.push_back(i); } } for(int i=0;i<ve.size();i++){ cout<<ve[i]<<" "; } } return 0;}
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年03月28日 08时35分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
录音功能
2019-03-04
mysql时间相关函数和操作
2019-03-04
万物皆可爬系列查看翻页翻到最后是什么
2019-03-04
python scrapy
2019-03-04
pymongo的使用
2019-03-04
A Guide to Node.js Logging
2019-03-04
前端基础知识学习FreeCodeCamp
2019-03-04
css的一些基础知识
2019-03-04
webwxbatchgetcontact一个神奇的接口
2019-03-04
Edge浏览器:你的的内核我的芯
2019-03-04
chrome浏览器功能介绍
2019-03-04
linux shell 读取文件脚本
2019-03-04
git命令升级版用法
2019-03-04
sed常用命令
2019-03-04
linux下各种小命令
2019-03-04
checksec未完待续~
2019-03-04
python pexpect
2019-03-04
inode索引节点的概念
2019-03-04
python时间格式转换time模块
2019-03-04