“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛
a、hzy 和zsl 的生存挑战
思路:看见“假设他们都足够机智”就够了,全输出1.00就ac
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define ll long long
#define mem(ar,num) memset(ar,num,sizeof(ar))
#define me(ar) memset(ar,0,sizeof(ar))
#define lowbit(x) (x&(-x))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define lcm(a,b) ((a)*(b)/(__gcd((a),(b))))
#define Max 3e5+10
#define mod 192600817
using namespace std;int main() {printf("%.2f\n",4/4.0);printf("%.2f\n",4/4.0);printf("%.2f\n",4/4.0);printf("%.2f\n",4/4.0);return 0;
}
b、人类史上最大最好的希望事件
思路:暴力算。。。
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define ll long long
#define mem(ar,num) memset(ar,num,sizeof(ar))
#define me(ar) memset(ar,0,sizeof(ar))
#define lowbit(x) (x&(-x))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define lcm(a,b) ((a)*(b)/(__gcd((a),(b))))
#define Max 3e5+10
#define mod 192600817
using namespace std;
ll t, a, b, c, d, fb[50010], m[50010];
void init() {fb[1] = 1;m[1] = 1;for(int i = 2; i < 50010; i++) {fb[i] = (fb[i - 1] + fb[i - 2]) % mod;m[i] = (fb[i] * fb[i]) % mod + m[i - 1];}
}
int main() {while(cin >> t) {init();while(t--) {cin >> a >> b >> c >> d;a = a * 4 + b + 1;c = c * 4 + d + 1;if(a > c)swap(a, c);ll ans = 0;ans = (m[c] - m[a - 1]) % mod;cout << ans % mod << endl;}}return 0;
}
c、超级无敌简单题
思路:数据没那么大,预处理一下,遇见不行的及时return。
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define ll long long
#define mem(ar,num) memset(ar,num,sizeof(ar))
#define me(ar) memset(ar,0,sizeof(ar))
#define lowbit(x) (x&(-x))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define lcm(a,b) ((a)*(b)/(__gcd((a),(b))))
#define Max 3e5+10
#define mod 192600817
using namespace std;
int ge[150010], g;
int gts(int y) {int ans = 0, x = y;while(x != 0) {int k = x % 10;x /= 10;ans += k * k;}return ans;
}
int isge(int k) {int s=k;while(1){s=gts(s);if(s==1)return 1;if(s==2||s==3||s==4||s==5||s==6||s==8||s==9||s==14||s==15||s==16||s==17||s==18||s==25||s==30)return 0;}
}
int main() {for(int i = 1; i <= 1000000; i++) {if(isge(i)) {ge[++g] = i;}}int t;cin >> t;while(t--) {int k;cin >> k;cout << ge[k] << endl;}return 0;
}
g、简单数学题
思路:在纸上分开写后发现可以套用这个公式。
然后利用等比数列求和来简化计算
下面贴一张常用的组合数公式:
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define ll long long
#define mem(ar,num) memset(ar,num,sizeof(ar))
#define me(ar) memset(ar,0,sizeof(ar))
#define lowbit(x) (x&(-x))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define lcm(a,b) ((a)*(b)/(__gcd((a),(b))))
#define Max 3e5+10
#define mod 1000000007
using namespace std;
ll n;
ll poww(ll a, ll b) {ll ans = 1, push = a;while(b > 0) {if(b & 1) {ans *= push;ans %= mod;}push *= push;push %= mod;b >>= 1;}return ans % mod;
}
int main() {while(~scanf("%lld", &n)) {cout << (n - 1) % mod * poww(2, n) % mod + 1 << endl;}return 0;
}
j、Count
思路:矩阵快速幂。
将转换成
f(n+1)=f(n)+2*f(n-1)+ 根据这个构造矩阵。
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define ll long long
#define mem(ar,num) memset(ar,num,sizeof(ar))
#define me(ar) memset(ar,0,sizeof(ar))
#define lowbit(x) (x&(-x))
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define lcm(a,b) ((a)*(b)/(__gcd((a),(b))))
#define Max 3e5+10
#define mod 123456789
using namespace std;
ll t, n, k;
struct mtx {ll x[6 + 1][6 + 1];mtx() {memset(x, 0, sizeof x);}
} ans;
mtx operator *(const mtx &a, const mtx &b) {mtx c;for(int i = 0; i < 6; i++)for(int j = 0; j < 6; j++)for(int k = 0; k < 6; k++)c.x[i][j] = (c.x[i][j] + a.x[i][k] * b.x[k][j] % mod) % mod;return c;
}
mtx operator ^(mtx a, ll k) {mtx ret;for(int i = 0; i < 6; ++i)ret.x[i][i] = 1;while(k) {if(k & 1)ret = ret * a;a = a * a;k >>= 1;}return ret;
}
int main() {cin >> t;while(t--) {mtx ak;cin >> n;if(n == 1) {cout << 1 << endl;continue;} else if(n == 2) {cout << 2 << endl;continue;}ak.x[0][0] = 1;ak.x[0][1] = 2;ak.x[0][2] = 1;ak.x[0][3] = 3;ak.x[0][4] = 3;ak.x[0][5] = 1;ak.x[1][0] = 1;ak.x[2][2] = 1;ak.x[2][3] = 3;ak.x[2][4] = 3;ak.x[2][5] = 1;ak.x[3][3] = 1;ak.x[3][4] = 2;ak.x[3][5] = 1;ak.x[4][4] = 1;ak.x[4][5] = 1;ak.x[5][5] = 1;mtx ans = ak ^ (n - 2);ll as = (2 * ans.x[0][0] % mod + ans.x[0][1] + 8 * ans.x[0][2] % mod + 4 * ans.x[0][3] % mod + 2 * ans.x[0][4] % mod + ans.x[0][5]) % mod;cout << as << endl;}return 0;
}
“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛相关推荐
- “字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1,2,3,4,5,7,8,9,10
1001: hzy 和zsl 的生存挑战 Problem Description zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战: zsl 和hzy ...
- 字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛
题目链接 传送门 简单数学题 题目 思路 前置知识: \[ \sum_{i=m}^{n}C_{i}^{m}=C_{n+1}^{m+1} \] 此题化简: \[ \begin{aligned} & ...
- 人类史上最大最好的希望事件 字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛
作为CNCS的半壁江山,狗哥常常在宇宙中心邵阳眺望黄浦江,夜晚的星空总是迷人,有时候还能见到彗星滑落. 狗哥是幸运的,他在两秒钟内看到了十七颗彗星划过天际,作为打ACM的学者,自然不会有「稳定-1」情 ...
- 文远知行杯广东工业大学第十六届程序设计竞赛ABEFHI(记录)
文远知行杯广东工业大学第十六届程序设计竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ大学ACM校赛新生赛是面向ACM/ICPC/CCPC/区域赛校队选手,巩固经典专 ...
- 文远知行杯广东工业大学第十六届程序设计竞赛(题解)
文远知行杯广东工业大学第十六届程序设计竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A:思维题 #include<bits/stdc++.h> usi ...
- 文远知行杯广东工业大学第十六届程序设计竞赛 E爬塔
题目描述 Alice最近迷上了杀怪爬塔的游戏,在塔中有n层关卡,在通过第i层关卡后Alice会走上第i+1层.每个关卡中可能会获得女神的祝福或者遇到怪物.如果得到女神的祝福,Alice生命值会+1,如 ...
- 文远知行杯广东工业大学第十六届程序设计竞赛错题笔记
目录 官网链接 A 区间最大值 F 一个很大的数 I V字钩爪 官网链接 A 区间最大值 题目描述 长度为 n 的数组 a,下标从1开始,定义 a[i]=n%i 有 m 组询问 {L,R},求 max ...
- 文远知行杯广东工业大学第十六届程序设计竞赛 A 区间最大值
题目链接:https://ac.nowcoder.com/acm/contest/30896/A 题目描述 长度为 n 的数组 a,下标从 1 开始,定义 a [ i ] = n % i a[i]=n ...
- 文远知行杯广东工业大学第十六届程序设计竞赛
A: 长度为 n 的数组 a,下标从1开始,定义 a[i]=n%ia[i]=n \% ia[i]=n%i 有 m 组询问 {L,R},求 maxi=LRa[i]max_{i=L}^{R} a[i]ma ...
最新文章
- golang中的栈帧
- Linux的Apache报错(20014)Internal error: Error retrieving pid file logs/httpd.pid
- win10 uwp 使用 Matrix3DProjection 进行 3d 投影
- Java即时编译:不仅仅是一个流行词
- 什么是管理型工业以太网交换机?
- python实现目标识别_Python10行代码实现目标检测
- linux proc文件 write的原子性,Linux命令之write调用的原子性
- rhel Linux 网络配置
- 使用蓝图构建Flask项目目录
- git pull提示remote error:CAPTCHA required
- python基础学习笔记第二天 内建方法(s t r)
- 今天有个微信好友咨询我
- spring实战笔记6---springMVC的请求过程
- 联想x3850x6重装系统,ibm x3850 x6安装系统,2015ibm服务器x3850x6
- 集训模拟赛改题及总结(7月part)
- idm bt种子下载如何提升速度?
- 靠“吃利息”每月5000元,需要银行存多少本金?
- java503错误是什么_打开网页后出现503 service unavailable等字样,什么意思
- JDBC使用教程详解
- The Java™ Tutorials下载地址