2020广东工业大学
碎花惊羽
懒,但是喜欢计算机的东西,想学在学,没有动力学
展开
-
J-母牛烃
题目链接 认真读一下题目,发现题目挺难?错,并不难,因为这道题由于答案的多解性,判题机应该选择的是动态判题,也就是每个人答案其实可以不同,给定的数据也可能不同: 所以就考虑怎么做到让同一个碳原子上的势力值不同吧:可以想到的是我们分别给1-n的碳原子,随机赋值1~n内不重复的数字,这样也就出现几种不同的判题法。 第一种:从开始进行k的赋值是分别将n,1.n-1.2,n-3,3……赋值给主链上第i个碳原子以及它所对应的支链碳原子。 第二种:从开始进行k的赋值是s=k/2分别将s,s+1,s-1,s+2,s-2…原创 2020-12-06 23:43:42 · 146 阅读 · 0 评论 -
L-母牛上柱
题目链接 真水题,会立体几何即可,比较经典的蚂蚁爬杆,上代码: #include<stdio.h> const double pi=3.1415926535; int main() { int a,b,r,h,t,i; double m,n; scanf("%d",&t); for(i=1;i<=t;i++){ scanf("%d%d%d%d",&a,&b,&r,&h); if(a>b){ if(a-b>180){n=((3原创 2020-12-06 19:46:18 · 181 阅读 · 0 评论 -
G-排解忧伤
题目链接 一道典型的贪心题目,可以考虑到的就是对所有人的期待座位排序,最后逐个进行计算,贪心进行到底,为了我自己偷懒用了c++的sort快排,用c的话也可以自己写一个快排。 另外,大佬用了一个特别巧妙的桶来做这道题,代码长度及难度骤降。 下面是我的做法: #include<bits/stdc++.h> using namespace std; const int MAX_N = 100010; int n,m,a[MAX_N],k[MAX_N]; int main() { scanf("%d%d原创 2020-12-06 19:35:41 · 143 阅读 · 2 评论 -
A-肥猪的钢琴床
题目: 读题即知此题为BFS系列题目,用动规即可,考虑所有可能出现的情况,发现大题分为三种:dp[i][0]=dp[i-1][0]+(a[i]-‘0’); dp[i][1]=min(dp[i-1][0]+‘1’-a[i],dp[i-1][1]+‘1’-a[i]); dp[i][2]=min(dp[i-1][1]+a[i]-‘0’,dp[i-1][2]+a[i]-‘0’); 第一个转移好理解,第二个以及第三个枚举所有情况,求出最小的值, 注意此处使用了BFS罕见的按排dp,需要好好理解一下,上代码: #inc原创 2020-12-06 19:20:30 · 342 阅读 · 0 评论 -
K-很基础的模拟题
题目: 真就可以纯模拟过题,直接按照题目给定条件模拟即可,不过需要注意一下边界条件及特殊情况,这里也就第三种操作会出现特殊情况:当从输入的数一直到最后一项全是相同数的时候可能会出现数组越界的情况,还有一个如果数组被删除为空数组的情况,不说了上代码: #include<stdio.h> int main() { long long int n,p,i,j,l,d[110]={0}; long long int a,b,c;//管他呢,我就要开longlong scanf("%lld%lld",&a原创 2020-12-06 19:04:45 · 428 阅读 · 0 评论 -
F-合并石子
题目: 经典题目改编,原题可以在洛谷上搜到 洛谷P1880 石子合并 考虑状态转移枚举所有情况,变成一道动规,考虑所有情况加和即可,代码(嫖的超简洁代码): #include <bits/stdc++.h> const int mod = 1000000007; using namespace std; const int N = 2010; long long f[N],n,C[N][N], d[N]; void init() { C[0][0] = 1; for (int i原创 2020-12-06 18:52:38 · 216 阅读 · 0 评论 -
E-枚举求和
题目: 又是一道找规律题,知道i,j的最小公倍数与最大公因数之积等于i*j,那就考虑m,n存在多少个k的倍数,两者相乘即为答案,代码极其简单,主要是思路: #include<stdio.h> int main() { int n,m; long long int i,j,k,t,l; scanf("%d",&t); for(l=1;l<=t;l++){ long long int count; scanf("%d%d%d",&n,&m,&k); co原创 2020-12-06 18:44:34 · 429 阅读 · 0 评论 -
D-中学数学题
题目: 所谓的后导0,想一下10进制转n进制是的转法,其实就是求n!是p的多少次方,所以简单求一下即可,代码: #include<stdio.h> int main() { int t; scanf("%d",&t); while(t--){ int n, p; scanf("%d%d",&n,&p); int ans=0; while(n>=p){ ans+=n/p; n/=p; } printf("%d\n",ans);原创 2020-12-06 18:40:13 · 204 阅读 · 0 评论 -
2020年广东工业大学第十届文远知行杯新生程序设计竞赛(同步赛)-C 母牛的俄罗斯轮盘赌
题目: 找规律题,推导出: n=1->pig n=2->cow n=3->pig n=4->pig n=5->cow n=6->pig n=7->cow n=8->pig n=9->pig n=10->cow 后面的规律基本上就知道了,直接算上代码: #include<stdio.h> int main() { int t,n; scanf("%d",&t); while(t--){ s原创 2020-12-06 18:34:15 · 404 阅读 · 4 评论 -
2020年广东工业大学第十届文远知行杯新生程序设计竞赛(同步赛)-B 拯救小a
题目 水题一道没什么难度: #include<stdio.h> #include<string.h> int main() { char c; int count=0; while((c=getchar())!=EOF){ if(c=='.'){ printf("%d",count); break; }else if(c=='a'){ count++; } } return 0; }原创 2020-12-06 18:29:03 · 323 阅读 · 0 评论