5.3
记录下第一次一个人vp整场比赛,而且还打到金牌区啦~
虽然是省赛
比赛地址:Dashboard - The 2024 International Collegiate Programming Contest in Hubei Province, China - Codeforces
A
题意:给出 $x,y$ ,求 $a,b$ 满足:
$$
\sqrt{\frac{lcm(x,y)}{gcd(x,y)}}=a\sqrt{b}
$$
且 $a\times b$ 最大。
令 $a=1$ 即可。
12345678910111213141516#include<bits/stdc++.h>using namespace std;#define LL long longint main(){ int t; cin>>t; while(t--) { LL a,b; cin>>a>>b; LL ans=a*b/__gcd(a,b)/__gcd(a,b); ...
cf 940 div.2 5/7
比赛链接:Dashboard - Codeforces Round 940 (Div. 2) and CodeCraft-23 - Codeforces
A
题意:给出 $n$ 个整数,求最多能构造出的等边多边形数量。
构造三角形即可。
123456789101112131415161718192021222324#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n; cin>>n; int check[500]={0}; for(int i=1;i<=n;i++) { int x; cin>>x; check[x]++; } int ans=0; ...
cf 939 div 2 5/7
比赛链接:Dashboard - Codeforces Round 939 (Div. 2) - Codeforces
A
签到题
12345678910111213141516171819202122232425262728#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int k,q; cin>>k>>q; int x; cin>>x; for(int i=1;i<k;i++) { int y; cin>>y; } for(int i=1;i<=q;i++) { int p; cin>>p ...
cf ECR164 5/6
比赛链接:Dashboard - Educational Codeforces Round 164 (Rated for Div. 2) - Codeforces
A
签到题。
1234567891011121314151617#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n,m,k; cin>>n>>m>>k; if(n/m*(m-1)+max(n%m-1,0)>k)cout<<"YES\n"; else cout<<"NO\n"; } return 0;}
B
题意:给出一个长为 $n$ 的数组 $a$ ,现在需要删除几个元素,使得最后的数组不满足以下条件:通过数次操作选择相等的 $a_{i-1} ...
深度学习计算(2)-参数管理
首先建立一个简单神经网络:
12345678910import tensorflow as tfnet = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(4, activation=tf.nn.relu), tf.keras.layers.Dense(1),])X = tf.random.uniform((2, 4))net(X)
访问目标参数
该网络有一个输入层,一个隐藏层,一个输出层,也即两个全连接层。三个层可以用下标0,1,2来进行访问,每个层有权重和偏置两组参数,分别用下标0,1访问,具体如下:
12345678910111213# 参数w格式满足y=xw+b# 访问输出层的权重和偏置print(net.layers[2].weights)# 访问输出层的偏置print(net.layers[2].weights[1])# 访问所有参数print(net.get_weights())# 另一种方式用下标0,1,2,3表示隐藏层权重、偏置、输出层权重、输 ...
深度学习计算(1)-层和块
自定义块需要满足的功能:
将输入数据作为其前向传播函数的参数。
通过前向传播函数来生成输出。请注意,输出的形状可能与输入的形状不同。例如,我们上面模型中的第一个全连接的层接收任意维的输入,但是返回一个维度256的输出。
计算其输出关于输入的梯度,可通过其反向传播函数进行访问。通常这是自动发生的。
存储和访问前向传播计算所需的参数。
根据需要初始化模型参数。
123456789101112class MLP(tf.keras.Model): # 用模型参数声明层。这里,我们声明两个全连接的层 def __init__(self): # 调用MLP的父类Model的构造函数来执行必要的初始化。 super().__init__() # Hiddenlayer self.hidden = tf.keras.layers.Dense(units=256, activation=tf.nn.relu) self.out = tf.keras.layers.Dense(units=10) # Outputlay ...
4.11
比赛链接:The 2023 ICPC Xi’an Invitational Programming Contest - Dashboard - Contest - QOJ.ac
A
题意:给出一个 $n$ 的排列 $p$ ,$A$ 和 $B$ 轮流进行,每次可以将 $p_{1…p_1}$ 按照任意顺序排列,当某人对于同一个 $p_1$ 执行两次操作时(这个人执行了两次),这个人输掉比赛。$A$ 先手,求出 $n$ 的排列中 $B$ 赢得比赛的排列数。
首先,当某个人执行操作时,必须将序列打乱,否则另一个人保持原序,这个人再次操作时就会输掉比赛。
考虑 $B$ 必赢的情况:
对于初始排列 $p$ ,当在 $p_1,p_2,…,p_{p_1}$ 中 $p_1$ 是最小的时候 $B$ 必赢。因为此时不管 $A$ 怎么操作,$B$ 都能将 $p_1$ 重新排回第一个数。
而对于 $p_1$ 不是最小的数的时候,$A$ 先手操作时可以排列出另一个 $p_1$ 最小的情形使 $B$ 输掉比赛。
因此答案即为:
$$
\sum A_{n-i}^{i-1}A_{n-i}^{n-i}
$$
1234 ...
cf global round 25 5/9
比赛链接:Dashboard - Codeforces Global Round 25 - Codeforces
A
题意:有 $n$ 栈灯从 $1-n$ 排成一排,初始时全是熄灭状态,每次只能选择两盏不相邻的熄灭的灯将其点亮,问能否达到一种给定的状态。
将最终状态中点亮的灯分成前后两半,每次分别在两半中选一盏灯。注意特判。
1234567891011121314151617181920212223242526272829303132333435363738394041#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n; cin>>n; char s[55]; cin>>s; int num=0; for(int i=0;i<n;i++) { ...
codeton round 8 4/9
比赛链接:Dashboard - CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!) - Codeforces
B
题意:给出长度为 $n$ 的数组 $a$ ,求数组 $p$ ,使其为 $0,n-1$ 的 一个排列,且 $a_i=mex(p_1,p_2,…,p_i)-p_i$ 。
从后往前即可。
1234567891011121314151617181920212223#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--) { int n; cin>>n; int a[n+2]; for(int i=1;i<=n;i++)cin>>a[i]; int ans[n+2]; int mex=n; for(int i=n;i>=1;i-- ...
3.28
比赛链接:Dashboard - The 2023 ICPC Asia Hangzhou Regional Contest (The 2nd Universal Cup. Stage 22: Hangzhou) - Codeforces
D
题意:给定 $n$ ,构造长为 $2n$ 的数列 $a$ ,使得
$$
(a_1 × a_2)+(a_3 × a_4)+ . . . +(a_{2n−1} × a_{2n}) = a_1 ×(a_2 + a_3)×(a_4 + a_5)× . . . ×(a_{2n−2} + a_{2n−1})× a_{2n}\neq 0
$$
且 $1\leq |a_i|\leq10^{10}$ 。
分奇偶讨论,令 $a_1 $ 与 $a_{2n}$ 为1,然后其余的数交替为-1和2,使得乘法的每一项和为1,然后留下最中间的两个数,解方程得出。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585 ...