引流广西东信杯

“中国东信杯”广西大学第三届程序设计竞赛(新生组)”
https://ac.nowcoder.com/acm/contest/10172?&headNav=www#rank
密码:2020gxuacm19

公共题第一题:A++++

题解:判定na和in的最小值。
如果用char string[200]存的话就很简单了
开两个计数器,读string[0]是i或者n
然后求两个计数器的最小值。总用时八分钟,主要读歪题了
#include<iostream>
#include<stack>
#include<string>
#include<cstring>
#include<algorithm>
//这个是大整数,一般打竞赛long long不容易爆数据int
#define ll long long
#define N 100000
using namespace std;
int main(){//关闭流同步,比赛代码,因为cin比scanf慢,会被time limited exceedios::sync_with_stdio(false);ll n=0;//等效于scanf("%lld",&n);cin>>n;while(n--){ll t,count1=0,count2=0;cin>>t;while(t--){char s[40];cin>>s;if(s[0]=='i')count1++;if(s[0]=='n')count2++;}//等效printf("A");cout<<'A';//判定两个计数器哪个数字小,把小的打进count1count1=min(count1,count2);while(count1--){cout<<'+';}cout<<endl;//回车不能丢}
}

第二题:GDP Carry

博弈论,题目和题面毫无干系的题
推理一个结果。已知先手只能走奇数步,后手只能走偶数步
就可以猜测是和奇偶性有关的博弈。我们大胆讨论:
1.如果是总和是奇数,那么龙老板赢定了,因为他一次可以拿完。
2.如果总和是偶数,那么龙老板要怎么样赢呢?偶数=奇数+奇数
3.而一旦出现了奇数,那么光依靠小西肯定是不能使得剩下的步数变成偶数
也就是说,龙老板必然还可以走一步。
总结:
只要步数中有一个奇数步
那么龙老板必然可以走一步
那么小西就必然不能让龙老板在他之前停下。龙老板赢
#include<iostream>
#include<stack>
#include<string>
#include<cstring>
#include<algorithm>
#define ll long long
#define N 1000005
ll x[N]={};
ll sum[N]={};
bool flag=false;
using namespace std;
int main(){//关闭流同步ios::sync_with_stdio(false);ll n=0;cin>>n;//等效scanffor(ll i=1;i<=n;i++){cin>>x[i];if(x[i]&1)flag=true;//x[i]&1是判定奇偶的快速方法,比较实用,可以加速60倍}if(flag)cout<<"Antinomy"<<endl;//等效prinf("Antinomy");else cout<<"XiJam"<<endl;
}

第三题: Interpretability

几何数学题。已知边长为1 2 4 8等比数列下去的边有f1 f2 f3条,求可以组成多少个三角形。
数学有一个三角形的初中结论:a+b>c任意成立。
而在本题中,变成了等腰三角形b>=a,(其中b为腰)
很多人会下意识考虑等边三角形作为第一种情况,其实大错特错。
实际上这题应该把所有等边三角形看成等腰三角形
举个例子1 1 1 6,
如果把6条权值为8的边考虑成等边就会丢掉三条边。
而如果考虑成等腰的话,那么值8的边可以组成三个等腰,和剩下的小边组成等腰三角形。
因此,这题应当优先考虑等腰的边,而不是等边。
#include<iostream>
#include<stack>
#include<string>
#include<cstring>
#include<algorithm>
#define ll long long
#define N 1000005
ll x[N]={};
ll sum[N]={};
bool flag=false;
using namespace std;
int main(){ios::sync_with_stdio(false);ll n=0,count1=0;ll count2=0;ll count3=0;cin>>n;for(ll i=1;i<=n;i++){cin>>x[i];//利用迭代循环实现不断判定等腰三角形存在的情况while(x[i]>=2&&count2>=1){count2--;x[i]-=2;count1++;}//剩下的就变成了底边,真的等边三角形count2+=x[i]%3;count1+=x[i]/3;}cout<<count1<<endl;}

第四题 :Batch Normalization 1D

 ~~真实名字:拿头模拟题~~ 很漂亮的模拟题,过程其实很清晰,而且题目又长又劝退,题面简单又单纯。可惜我没做对。稍微讲一下题意:模拟这样一个过程:1.给二维矩阵和一维矩阵的运算模式,利用运算规则进行精度计算2.第一步,先求出两个定矩阵3.第二步,进入训练状态循环n_b次,将进行两种运算其一:求x_hat其二:求moving_var和moving_mean,这个运算过程就是模拟过程。4.结束:最后模拟运算一次,打印结果。
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include<cmath>
#include<list>
using namespace std;
long long  n, c,n_b;
double eps, mo;
double  x[205][205] = {};
double x_hat[500][500] = {};
double moving1[205] = {};
double moving2[205] = {};
double beta[20005] = {};
double gamma1[20005] = {};
double out[205][205] = {};
double t[205] = {};
list<string>s1;
double mxxx[50] = {};
double varx[50] = {};
//主代码从这里开始
int main() {cin >> n >> c >> n_b >> eps >> mo;for (int i = 0;i < n;i++) {for (int j = 0;j < c;j++) {cin >> x[i][j];//存x矩阵}}for (int i = 0;i < c;i++) {cin >> gamma1[i];//存gamma}for (int i = 0;i < c;i++) {cin >> beta[i];//存beta}for (int i = 0;i < c;i++) {cin >> moving1[i];//存moving—mean}for (int i = 0;i < c;i++) {cin >> moving2[i];//存moving-var}for (int i = 0;i < c;i++) {double tmp = 0;for (int j = 0;j < n;j++) {tmp += x[j][i];}mxxx[i] = tmp / n;//求mu的矩阵}for (int i = 0;i < c;i++) {double tmp = 0;for (int j = 0;j < n;j++) {tmp += (x[j][i] - mxxx[i])* (x[j][i] - mxxx[i]);}varx[i] = tmp / n;//求var的矩阵}//开始训练while (n_b--) {for (int i = 0;i < n;i++) {for (int j = 0;j < c;j++) {t[1] = x[i][j] - mxxx[j];t[2] = varx[j] + eps;t[2] = sqrt(t[2]);x_hat[i][j] = t[1] / t[2];//第一种训练的模拟过程}}//第二种训练的模拟过程*2for (int j = 0;j < c;j++) {t[1] = mo * moving1[j];t[2] = (1.000000 - mo) * mxxx[j];moving1[j] = t[1]+t[2];}for (int j = 0;j < c;j++) {t[1] = mo * moving2[j];t[2] = (1.00000 - mo) * varx[j];moving2[j] = t[1]+t[2];}}//训练结束,开始最后的运算for (int i = 0;i < n;i++) {for (int j = 0;j < c;j++) {x_hat[i][j] = (x[i][j] - moving1[j]) / sqrt(moving2[j] + eps);}}//打印结果outfor (int i = 0;i < n;i++) {for (int j = 0;j < c;j++) {out[i][j] = gamma1[j] * x_hat[i][j] + beta[j];printf("%.4f ", out[i][j]);}if (i != n - 1)cout << endl;}
}

新生组第五题:小西和数字转换

思维
倒着思考第x个数以内,除y+1位是1,其余为0
如果不是,那么计数器+1,输出计数器的数字即可。
#include<iostream>
#include<string>
using namespace std;
int main ()
{string num;int n,x,y;cin >> n >> x >> y;cin >> num;int ans = 0;for ( int i = n - x ; i < n; i++ ){//两个判定限制条件,要么倒序y+1是1,其余都不能是1,不满足就扣钱if ( ( num[i] == '1' && i != n - y - 1 ) || ( num[i] == '0' && i == n - y - 1 ) )ans++;}cout << ans << endl;return 0;
}

新生组第六题:小西和拼图

拼图,简单题
判定两个条件:
其一是m是否会被2整除
其二是是否存在任意拼图第二个数字和第三个数字相同
满足这两个即可。

(据说有一个数据n是读取失败了,有的人正确代码也错了,那么不改变n可能就给过了,可以去试试)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{int T;scanf("%d", &T);while (T--){int n, m;scanf("%d%d", &n, &m);int a, b, c, d;int k = 0;while(n){scanf("%d%d%d%d", &a, &b, &c, &d);if (b == c){k = 1;}n--;}if (k == 1 && m % 2 == 0)printf("YES\n");else  printf("NO\n");}return 0;
}

新生组第七题:小西和复制粘贴

~~您就是cv工程师?!~~
这题是经典的倒叙思维题利用倒序由果导因
已知我们要第i个字母
我们从最后一步往前走走到起点不就知道我们需要第i个字符了么。
//您就是cv工程师??!
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include<list>
using namespace std;
long long  n, k,m;
char s[2000005] = {};
long long  x[200005] = {};
long long sum[200006] = {};
long long a[200005] = {};
long long b[200005] = {};
long long c[200005] = {};
list<string>s1;
//刚开始思考用链表然后发现爆了就没写下去
typedef struct node {string s;node *x;
}T,*tree ;
int main() {cin >> k >> m;cin >> s;cin >> n;//倒过来取步骤,方便正向进行,~i就是取反,判定是否i为0//这么妖的代码一看就是抄lmgg的for (long long  i = n-1;~i;i--) {cin >> a[i] >> b[i] >> c[i];}for (long long i = 0;i < k;i++) {long long p = i;//你现在要找第i个数字是哪个字符for (long long j = 0;j < n;j++) if(c[j]<=p){long long tmp = b[j] - a[j];if (c[j] + tmp > p)p = a[j] + p - c[j];else p -= tmp;}//那就倒退回去,如果比p大了,那么肯定不影响p的生活//如果比p小了,要么取代了p,要么让p这个位置往前了。//(建议自己手撸一下很快的)cout << s[p];}
}

新生组防ak: 小西和秀苑酱饼

这题是真的好题,就算放到正式组也是屈指可数的过题量
模拟+dfs,不愧是龙老板
感谢龙老板提供题解!

#include <bits/stdc++.h>using namespace std;#define N 510
#define INF 0x3f3f3f3f//最大值int n, m, num, ans[N][N], vis[N][N];
char s[N][N];void F(int x, int y, int z)//dfs(深度优先搜索)
{if (x < 1 || x > n || y < 1 || y > m || vis[x][y] > 0)return;//递归边界,如果出现了如上情况,那么直接终止if (vis[x][y] == -1)//如果出现访问过并且未知可不可以走下去的情况,那么标记无穷大,然后终止访问{num = INF;return;}//标记当前点已经经过但是不知道可不可以走vis[x][y] = -1;++num;
//如果这个点是nif (s[x][y] == 'N'){//z为进来的方向if (z == 0 || z == 3){//那么就出去往这两个方向F(x, y + 1, 0);F(x - 1, y, 3);}else{//那么就往这两个方向走,F(x, y - 1, 2);F(x + 1, y, 1);}}else{//那么进来就是z了if (z == 0 || z == 1){//如果z从10进来,就从01出去F(x, y + 1, 0);F(x + 1, y, 1);}else{//否则就从23出去F(x, y - 1, 2);F(x - 1, y, 3);}}
//确实可以走,那么就把访问点标记为可走vis[x][y] = 1;
}int main()
{scanf("%d%d", &n, &m);for (int i = 1; i <= n; ++i)scanf("%s", s[i] + 1);memset(ans, 0x3f, sizeof ans);for (int i = 1; i <= n; ++i){memset(vis, 0, sizeof vis);num = 0;for (int j = 1; j <= m; ++j){//从四个角落才可以出发,判定四个角落是否满足出发条件if (s[i][j] == 'N')F(i, j, 1);elseF(i, j, 3);//取当前最小值,因为多次访问会出现有大小的情况ans[i][j] = min(ans[i][j], num);}}for (int i = 1; i <= n; ++i){memset(vis, 0, sizeof vis);num = 0;for (int j = m; j; --j){if (s[i][j] == 'N')F(i, j, 3);elseF(i, j, 1);ans[i][j] = min(ans[i][j], num);}}for (int i = 1; i <= n; ++i)for (int j = 1; j <= m; ++j)printf(j == m ? "%d\n" : "%d ", ans[i][j] >= INF ? -1 : ans[i][j] * 2);//结果乘2为最终答案//你龙老板永远是你龙老板return 0;
}

第三届广西大学东信杯题解(感谢中国东信爸爸赞助支持)相关推荐

  1. 【Java/总结/牛客/ACM赛制】 “中国东信杯”广西大学第四届程序设计竞赛(同步赛)

    文章目录 题目链接 知识一览 题目列表 快输 F Antinomy与金手指(kmp) H Antinomy与法术威力(队列/区间最值) 题目链接 "中国东信杯"广西大学第四届程序设 ...

  2. 奥林匹克杯,授予中国人民!

    在今天进行的国际奥委会第139次全会上,国际奥委会主席托马斯·巴赫将奥林匹克杯授予全体中国人民,以感谢中国人民对于北京冬奥会做出的卓越贡献. ​ 巴赫说,如果没有中国人民的支持,北京冬奥会不可能收获如 ...

  3. 中国石油大学(北京)第三届“骏码杯”程序设计竞赛(同步赛)——C 小菲爱数数

    题目链接:C-小菲爱数数_中国石油大学(北京)第三届"骏码杯"程序设计竞赛(同步赛) (nowcoder.com) 思路好像和题解不一样,但是a了. 主要思路:首先肯定是要先把素数 ...

  4. 华南理工大学广州学院计算机二级,华南理工大学广州学院学子在第三届“泰迪杯”数据分析职业技能大赛中荣获佳绩...

    12月19日,第三届泰迪杯数据分析职业技能大赛落下帷幕并公示了获奖名单.华南理工大学广州学院获得国家二等奖一项,国家三等奖两项的好成绩,这是我华南理工大学广州学院首次有组织地参与该赛事.本次竞赛由计算 ...

  5. 不到一年英伟达股价又翻番了,CFO说:感谢中国、感谢AI

    夏乙 问耕 发自 凹非寺 量子位 出品 | 公众号 QbitAI 2016年1月初,英伟达股价不到30美元. 2017年1月初,英伟达股价刚过100美元. 今年还剩两个月没过完,英伟达的股价已经超过2 ...

  6. 第三届“网鼎杯”官方资格赛圆满结束,问鼎之战即将开启!

    8月31日,历时近一周的激烈博弈,第三届"网鼎杯"四场官方资格赛圆满结束.接下来,将遴选500支战队.2000名选手晋级半决赛,全球最大规模网络安全竞技现场即将开启! 第三届&qu ...

  7. [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)

    2022年第三届"网鼎杯"网络安全大赛(白虎组)部分题目附件 文章目录 [Misc]misc620 [Crypto]crypto582 [Crypto]crypto581 [Mis ...

  8. [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)

    2022年第三届"网鼎杯"网络安全大赛(青龙组)部分题目附件 已解题列表 [Misc]签到 [Crypto]crypto405 [Crypto]crypto091 [Pwn]pwn ...

  9. 第十届蓝桥杯题解(部分)

    第十届蓝桥杯题解 注释:这段时间正好在写蓝桥杯的题,将部分的题目的解法和大家分享,代码中的网址是该代码蒟蒻当时参考其他大佬的题解文章所在的网址,鸣谢大佬,如有错误,欢迎各位大佬指正 有部分网址是提交答 ...

最新文章

  1. [ACM] hdu 1228 A+B (字符串处理)
  2. 目标检测 nms非极大抑制算法
  3. 奥数之“牛吃草问题”C++实现
  4. SAP 调用外部系统
  5. access查询成绩小于5分_又一所大学公布成绩!5个人中有4人专业课130分以上,厉害了!...
  6. 【机器学习】太赞了!几行代码实现30多种时序模型预测
  7. arm-linux-ld: cannot find -lgcc,/arm-linux-gnueabi/bin/ld: cannot find crt1.o
  8. 定义python函数时如果没有return_定义 Python 函数时,如果函数中没有 return 语句,则默认返回空值 None 。_学小易找答案...
  9. 记录一次数据同步到数据仓库的架构与实践
  10. 图像椒盐噪声和高斯噪声
  11. 老年代的更新机制_魔兽世界:60年代五大“远古”机制,这根胡萝卜,可是当年的神器...
  12. 在线视频加密播放(加密视频观看)
  13. Ubuntu16.04下网易云音乐点击图标打不开——已解决
  14. 熊猫烧香病毒幕后黑手曝光 网络世界高手对决一个月
  15. 如何提高程序员的工作效率 这几招就够了
  16. 简简单单做股票读书笔记(4/8)
  17. nginx服务器如何禁止访问目录(但是可以访问具体内容)
  18. 机器人导航——路径跟踪
  19. 红米note4出厂系统版本_红米 Note 4 开始接收 MIUI 10 国际稳定版系统更新
  20. 【邢不行|量化小讲堂系列58-实战篇】零基础了解什么是期权,抓住下轮牛市红利

热门文章

  1. 矩阵论-杨明-第二版pdf
  2. <Linux权限概念>——《Linux》
  3. “我爱淘”冲刺阶段Scrum站立会议2
  4. 51单片机DS18B20温度传感器
  5. 数据挖掘学科发展报告
  6. torch 的 forward 和 backward
  7. RRC idle 和RRC connect
  8. 解决报错: PostCSS received undefined instead of CSS string
  9. rsync 服务配置
  10. 老字号白酒企业——金徽酒借力泛微,升级门户,实现统一办公