- 博客(15)
- 收藏
- 关注
原创 2020牛客NOIP赛前集训营-普及组(第六场)B-平面旅行
解由于它是个平面…所以最短路要么借助传送点走过去,要么直接计算两点间距离。所以我们先跑个 (n*m) 处理掉传送点与各点间的距离。然后依次跑点,传送点直接传送,非传送点直接走或者借助传送点走。代码#include<cstdio>#include<iostream>#include<cmath>#include<string>#include<cstring>using namespace std;int n,m,ans...
2020-10-30 21:46:57 141
原创 2020牛客NOIP赛前集训营-普及组(第六场)A-七七七七
解模拟。代码#include<cstdio>int n,day,sum,c;int main(){ scanf("%d",&n); day = sum = c = 1; while(sum < n){ c *= 7; sum += c; ++day; } printf("%d",day);}
2020-10-30 19:27:29 102
原创 2020牛客NOIP赛前集训营-普及组(第五场)A-T1购物
题目解xxs数学题。代码#include<cstdio>int n,k,x,T;void work(){ scanf("%d%d%d",&n,&k,&x); printf("%d\n",(n-n/(k+1))*x);}int main(){ scanf("%d",&T); while(T--) work();}
2020-10-28 21:55:57 128
原创 2020牛客NOIP赛前集训营-普及组(第五场)B-T2交换
题目解?模拟,贪心?代码#include<cstdio>#include<cmath>#include<iostream>using namespace std;char c;int s[1000001],t,cnt,ans,first;int main(){ c = getchar(); while(c == '0' || c == '1'){ s[++t] = c-48; if(c == '1') ++cnt; else{
2020-10-28 21:53:53 162
原创 2020牛客NOIP赛前集训营-普及组(第五场)C-T3最少移动
解平均数,贪心代码#include<cstdio>#include<iostream>#include<cmath>using namespace std;int n;long long a[100010],sum,avg,cha,ans,T;long long readd(){ char c = getchar(); long long x = 0; while(c > '9' || c < '0') c = getchar(...
2020-10-28 21:51:53 167
原创 【期望】2020牛客NOIP赛前集训营-普及组(第五场)D-T4 飞行棋
题目解-设F[i]为期望跳到终点的步数。-一些性质:对于 1 ~ d-1 的区间我们可以发现…有一种可能直接跳到0点如果不跳到0点,跳到 1 ~ d-1 的格子的概率是相等的因为前一点,跳d步等于没跳。对于 d ~ n 的区间我们可以发现…不能一步到位,所以总是往左跳的。跳d步的话不计回合数。于是我们就可以分开处理以上两种情况。-对于 1~d-1 的区间:F[i]=d−2d−1∗(F[i]+1)+1d−1F[i]= \dfrac{d - 2}{d - 1}
2020-10-28 21:16:00 224
原创 2020牛客NOIP赛前集训营-普及组(第二场)D-变换
题目解对于这些操作…其实就是相对的对第i个数乘上或除上某数。代码#include<cstdio>int a[1990001],gcdd,ans,n;int gcd(int aa,int bb){ if(bb == 0) return aa; return gcd(bb,aa%bb);}int main(){ scanf("%d", &n); for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
2020-10-27 21:45:45 159
原创 2020牛客NOIP赛前集训营-普及组(第二场)B-纸牌游戏
题目解首先,排序——我们发现,当人数不再减少的时候便是所有人都能取到他每轮失去的牌数,即他能取的 >= 剩余人数。而失去牌数>得到牌数者必被淘汰…所以判断一下。代码#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int n,a[100003],sy,ans;int main(){ scanf("%d",&n); for(i
2020-10-27 21:32:36 250
原创 2020牛客NOIP赛前集训营-普及组(第一场)B-牛牛的跳跳棋
题目解对于某个原先跳不到的点i,我们选择一个序号最小的点使得这个点可以跳到i-1,然后延伸它,同时记录答案。注意延伸完一次后应从当前点出发重新延伸。代码#include<cstdio> #include<iostream>#include<cstring>#include<cstdio>using namespace std;int n,d[100005],s[100005],jump[100005],b[100005],ans
2020-10-27 18:20:00 576
原创 【输入输出】2020牛客NOIP赛前集训营-普及组(第一场)A-牛牛的密码
题目解一些简单的字符处理。代码#include<cstdio>#include<string>#include<cstring>#include<iostream>using namespace std;string s[10];int pd[10];int main(){ cin >> s[0]; for(int i = 0; i < s[0].size(); ++i){ if(
2020-10-27 18:10:52 151
原创 【Map】【素数】2020牛客NOIP赛前集训营-普及组(第一场)C-牛牛的最大兴趣组
LinkOH—又是map题目解对于有 pn * k = a,可以简化为 pn%3 * k = a(即除去已经有的三次方。这些多余的数字对于答案并无什么贡献)简化完毕后我们会得到一个数x,设xd是最小的,能使 x * xd 为某个数的三次方的数。而xd也可以被某个数简化而成…于是答案便成了每对 x类数与xd 类数的数量间取最大者。因为假设你取完了,你不能去xd类里的数,不然就可以凑成某数的三次方。注意:本身就是三次方的数,他们简化后为1,相对的也为1。所以这类数只能取一个。
2020-10-26 21:55:27 210
原创 2020牛客NOIP赛前集训营-普及组(第二场)C-涨薪
这是一题快速幂,及坑人题。题目解快速幂:设c(p,n)为p的n次方,得当p为偶数:c(p,n)=(p,n/2)^2当p为奇数:c(p,n)=(p,n/2)^2*p代码#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>using namespace std;long long mo = 1000000007;long long n,m,
2020-10-22 18:33:27 125
原创 2020牛客NOIP赛前集训营-普及组(第二场) A-面试
题目链接题解?模拟。代码#include<cstdio>#include<iostream>using namespace std;int n,k[10];char c;int main(){ scanf("%d", &n); for(int i = 1; i <= n; ++i){ k[1] = k[2] = k[3] = k[4] = 0; for(int j = 1; j <= 4; ++j){ c = getcha
2020-10-22 18:25:01 992
原创 【输入输出】洛谷U94764 输出回车
题目解?推敲一两下就好了。代码#include<cstdio>#include<iostream>using namespace std;int main(){ printf("\\n");}
2020-10-08 08:24:22 290 1
原创 【输出中文字符】洛谷U89431 a+b
题目注意一个是中文括号一个是英文括号由于中文占两个字节,所以输出一个中文得拆成两段ASCII来输出。代码#include<cstdio>using namespace std;int a,b,c;void pt(int k){ if(k<0) printf("%c%c%d)",-93,-88,k); //-93,-88可以拼成一个中文括号 else printf("%d",k);}int main(){ scanf("%d%d",&
2020-10-08 07:50:11 296
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人