2016年中南大学校赛镜像赛
A - How to Get 2^n
没写出来,不过应该是Trie
B - 皇家火枪手
二分,求出满足条件的最少人
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<stdio.h>
#include<vector>
#include<cmath>
using namespace std;
const int MAXN=10000+5;
typedef long long int LL;
int m,a,k;
bool check(int x)
{LL cnt=0;if(k>2){for(int i=2,tot=0;i<=k&&tot<x;i+=2){cnt+=1LL*(k-i)*a;tot++;}}return 1LL*a*x*k-cnt>=m;
}
int main()
{int t,n;scanf("%d",&t);while(t--){scanf("%d%d%d",&m,&a,&k);int left=0,right=100000000+1,mid;while(right>=left){mid = (left + right) >> 1;if (check(mid)){right = mid - 1;}else {left = mid + 1;}}printf("%d\n",left);}return 0;
}
C - Race
按照题目模拟吧。
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<cstdio>
#include<stack>
using namespace std;
typedef long long ll;
const int maxn = 10005;
int john[maxn], bob[maxn];
bool cmp(int a, int b)
{return a > b;
}
int main(){
#ifdef kiritofreopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#endifint T;scanf("%d", &T);while (T--){int n;scanf("%d", &n);for (int i = 0; i < n; ++i)scanf("%d", &john[i]);for (int i = 0; i < n; ++i)scanf("%d", &bob[i]);sort(john, john + n);sort(bob, bob + n);int jr = n - 1, jl = 0;int br = n - 1, bl = 0;int ans = 0;while (jl <= jr && bl <= br){if (john[jl] > bob[bl])ans++, jl++, bl++;else if (john[jl] < bob[bl])jl++, br--;else {if (john[jr] > bob[br])ans++, jr--, br--;else if (john[jr] < bob[br])br--, jl++;else{if (john[jl] < bob[br])jl++, br--;else if (john[jl] == bob[br])break;}}}printf("%d\n", ans);}return 0;
}
D - 想打架吗?算我一个!所有人,都过来!
把前十项推出来就可以发现有规律了。 n>=3时,每四项一个循环
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<stdio.h>
#include<vector>
#include<cmath>
using namespace std;
int main()
{
//#ifndef kirito
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
//#endifint t,n,Ca=1;scanf("%d",&t);while(t--){scanf("%d",&n);int ans1,ans2;if(n==0){ans1=ans2=1;}else if(n==1){ans1=ans2=2;}else{int tot[4]={4,6,6,5};if(n>=3){ans2=6;}else{ans2=4;}ans1=tot[(n-2)%4];}printf("Case %d: %d %d\n",Ca++,ans1,ans2);}return 0;
}
E - 加尔鲁什·地狱咆哮对阵虚灵大盗拉法姆
概率dp,没写出来
F - 你经历过绝望吗?两次!
要求的不是步数最优而是某项条件最优,那么我们就以那项条件优先扩展队列。
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<stdio.h>
#include<vector>
#include<cmath>
#include<queue>
using namespace std;
const int MAXN = 100 + 5;
#define INF 0x3f3f3f3f
int n, m, t, vis[MAXN][MAXN], dist[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1 };
char g[MAXN][MAXN];
struct Node
{int x, y;int k;bool operator < (const Node &rhs)const{return k>rhs.k;}
}start;
bool check(int x, int y)
{return x >= 0 && x<n&&y >= 0 && y<m;
}
int bfs()
{memset(vis, 0, sizeof(vis));priority_queue<Node>Q;Q.push(start);vis[start.x][start.y] = 1;while (!Q.empty()){Node Top, Next;Top = Q.top();Q.pop();if (Top.x == 0 || Top.x == n - 1 || Top.y == 0 || Top.y == m - 1){return Top.k;}for (int i = 0; i<4; i++){Next.x = Top.x + dist[i][0];Next.y = Top.y + dist[i][1];Next.k = Top.k;if (check(Next.x, Next.y) && g[Next.x][Next.y] != '#'&&vis[Next.x][Next.y] == 0){if (g[Next.x][Next.y] == '*'){Next.k++;}vis[Next.x][Next.y] = 1;Q.push(Next);}}}return -1;
}
int main()
{
#ifdef kiritofreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);
#endifscanf("%d", &t);while (t--){scanf("%d%d", &n, &m);for (int i = 0; i<n; i++){scanf("%s", &g[i]);for (int j = 0; j<m; j++){if (g[i][j] == '@'){start.x = i; start.y = j; start.k = 0;}}}printf("%d\n", bfs());}return 0;
}
G - The Fake Coin
三进制问题。
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<stdio.h>
#include<vector>
#include<cmath>
using namespace std;
const int MAXN = 10000 + 5;
int ans[MAXN];
void init()
{int tot = 3, cnt = 1;ans[1] = 0; ans[2] = 1;for (int i = 3; i <= 10000; i++){if (i>tot){tot = tot * 3;cnt++;}ans[i] = cnt;}
}
int main()
{
#ifdef kiritofreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);
#endifint t, n;scanf("%d", &t);init();while (t--){scanf("%d", &n);printf("%d\n", ans[n]);}return 0;
}
H - 线形逐步共聚合反应
题目很难懂,不过应该是道三分题。
I - Tractatus Logico-Philosophicus
这题有毒,当n不为2的次幂时,根本构造不出来题目要求的矩阵[关于主对角线对称,每行每列元素都是0到n-1,切不重复。],不过这题真是迷。 即使不符合题目要求的矩阵代码都能AC。醉了。 补充: 这真是神题,刚刚试了一下,只要对角线是0,其他位置随意填都能AC。 不管你填什么数
#define _CRT_SECURE_NO_DEPRECATE
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<string>
#include<bitset>
#include<utility>
#include<functional>
#include<iomanip>
#include<sstream>
using namespace std;
const int MAXN = 1000 + 5;
int num[MAXN][MAXN];
int main()
{
#ifdef kiritofreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);
#endifint t, n;scanf("%d", &t);while (t--){scanf("%d", &n);for (int i = 0; i < n; i++) //主对角线{num[i][i] = 0;}for (int i = 0, j = n - 1; j >= 0; j--, i++) //副对角线{num[i][j] = n - 1;}for (int i = 0, cnt = 1, k = 1; k < (n / 2); k++, i++, cnt += 2) //右三角{int size = n - (i + 1) * 2, p = cnt;for (int j = i + 1, x = 1; x <= size; j++, x++){num[i][j] = num[n - 1 - j][n - 1 - i] = p++;}}for (int i = 1; i < n; i++){for (int j = 0; j < i; j++){num[i][j] = num[j][i];}}for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){printf("%d", num[i][j]);printf("%c", j == n - 1 ? '\n' : ' ');}}}return 0;
}
2016年中南大学校赛镜像赛相关推荐
- 计算机设计大赛国赛可以换队员,关于遴选2016年中国计算机设计大赛国赛评委候选人的通知...
各学院: 根据国家有关高等学校创新能力提升计划.进一步深化高校教学改革.全面提高教学质量的精神,切实提高计算机教学质量,激励大学生学习计算机知识.技术.技能的兴趣和潜能,培养其创新创业能力及团队合作意 ...
- 第十三届NENUACM校赛正式赛总结
目录 A B C D E F G H I 这次比赛主要是心态稳定,一直坚持不懈地想把题A掉,运气好就好在有很多思维题,我出的题没有用到高级点的算法. 一个点在于自己潜心研究了一点组合数学,其实并没有比 ...
- 数学建模系列:历年优秀论文+入门+进阶+国赛+美赛+其他
数模系列:历年优秀论文+入门+进阶+国赛+美赛+其他(待更新中) 数模成绩为国二\省一\o奖\H奖,在博客做一个总结.先放国赛美赛的历年优秀论文,资料来源微信公众号数学模型.(目前完成部分:入门+进阶 ...
- 2021 年广东省职业院校技能大赛(中职组) 网络搭建与应用赛项国赛遴选赛卷(B)
2021 年广东省职业院校技能大赛(中职组) 网络搭建与应用赛项国赛遴选赛卷(B) 技能要求 (总分 1000 分) 竞赛说明 一.竞赛内容分布 "网络搭建与应用"竞赛共分三个部分 ...
- 2021 年广东省职业院校技能大赛(国赛遴选赛卷(A))
2021 年广东省职业院校技能大赛(中职组) 网络搭建与应用赛项 国赛遴选赛卷(A) 技能要求 (总分 1000 分) 2 / 29 竞赛说明 一.竞赛内容分布 "网络搭建与应用" ...
- 服务器部分 2023盘古石杯全国电子数据取证大赛 技能赛晋级赛
首届盘古石杯全国电子数据取证大赛 技能赛晋级赛服务器部分 MD5: FF4AB93F852B23DD759A6810754557A8 加密容器密码:usy1UN2Mmgram&^d?0E5r9 ...
- 分享Kali Linux 2016.2第50周镜像文件
分享Kali Linux 2016.2第50周镜像文件 Kali Linux官方于12月11日发布Kali Linux 2016.2的第50周镜像.这次保持以往规律,仍然是11个镜像文件.默认的Gno ...
- 分享Kali Linux 2016.2第49周镜像文件
分享Kali Linux 2016.2第49周镜像文件 Kali Linux官方于12月4日发布Kali Linux 2016.2的第49周镜像.这次保持以往规律,仍然是11个镜像文件.默认的Gnom ...
- 分享Kali Linux 2016.2第48周镜像文件
分享Kali Linux 2016.2第48周镜像文件 Kali Linux官方于11月27日发布Kali Linux 2016.2的第48周镜像.这次延续以往规律,仍然是11个镜像文件.默认的Gno ...
- 分享Kali Linux 2016.2第47周镜像
分享Kali Linux 2016.2第47周镜像 Kali Linux官方于11月20日发布Kali Linux 2016.2的第47周镜像.这次发布仍然包含11个镜像文件.其中,不仅包含Gnome ...
最新文章
- flex 嵌套 之 高度自适应
- python将16进制字符串转换为整数_Python 16进制与字符串的转换
- 如何转换并压缩png格式图片
- mysql根据行数排序_mysql指定某行或者某列的排序
- linux删除一个目录下的所有空文件
- RBF神经网络及其应用【神经网络】
- 【uniapp小程序】—— APP项目云打包(安卓)
- 进化吧,MySQL锁!无锁->偏向锁->轻量级锁->重量级锁(请自动脑补数码宝贝进化音)
- 电脑系统win8计算机在哪里设置开机密码,电脑怎样设置开机密码_win8开机密码设置...
- postgresql立式版本下载_【PostgreSQL下载】PostgreSQL官方版下载_多特软件站
- [BJOI2019]勘破神机(斯特林数,数论)
- 【100个 Unity小知识点】☀️ | Unity 中怎样读取Excel文件
- windows服务器443端口被占用---云锁
- 五子棋游戏AI智能算法设计
- 微信小程token_微信小程序登录换取token
- 计算机系统ARM64拆除炸弹
- 在深圳转户口这件小事
- 【电脑使用】美化你的Windows
- python使用win32com读写excel的问题
- JSPEL表达式MVC三层结构综合案例
热门文章
- 吴恩达 :机器学习的六个核心算法
- 华为程序员频交 Linux 内核补丁遭质疑,管理员后续回应:承认贡献,但请不要琐碎提交
- Greedy 贪心算法
- iis+php解析漏洞修复,IIS+PHP fastcgi模式 pathinfo取值错误任意代码执行漏洞修复方法...
- 红警教育2020版笔记本芯片级维修教材(含军工级)
- 关于修改了网页源文件但是网站显示却没变的问题解决
- 多臂老虎机(Multi-armed Bandit)MAB学习笔记
- python中forward是什么意思_pytorch 中forward 的用法与解释说明
- MATLAB 整数小数负数十进制转换为十六进制
- 云原生中间件RocketMQ-消费者消费模式之广播模式、偏移量offset解析