前言

话说其实写这篇博客是看了之前某 dalao d a l a o dalao这样写,于是我就效仿了一下
不过那位 dalao d a l a o dalao据说公开赛被刷下来了,好像是因为题目过水。。。后来他又奋发图强,出了几个稍微难一点的题,不过还是没有通过,深感同情。。。
之前开的团队公开赛也被刷了,理由好多啊,不过总算管理有认真看了,不过这都无所谓,总之本人自己开了一个邀请赛(因为太弱不敢开公开),希望大家多多支持!


分割线

简介

这是一场很水的比赛。。。
大部分都是水题,由于本人在洛谷发不了讨论所以就发博客了。。。
有些题目在比赛之前可能本人写过博客,现在已经全部影藏了,在赛后我会放出来的!

这篇博客的实际意义主要是下面这两条

在赛时这里是赛时答疑
在赛后这里是赛后题解

这里也会给出各种小 Tips T i p s Tips,尽情期待吧!(现已停止)
若有疑问请在下方讨论提问,谢谢配合!

链接:https://www.luogu.org/contestnew/show/7773

赛时答疑

(每天给出一个 Tip T i p Tip)

Tip1 T i p 1 Tip_1所有题目的正解均跟题目名称有关 #2018年6月6日

Tip2 T i p 2 Tip_2每个题目的正解总时间不超过1s #2018年6月7日

Tip3 T i p 3 Tip_3所有升级版的题目均可以通过改造原题AC #2018年6月8日

Tip4 T i p 4 Tip_4有一半以上的题需要预处理 #2018年6月9日

有疑问就在下方评论吧!

赛后题解

T1

等价于求 log(n) l o g ( n ) log(n),直接输出就行

#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
long long n;
int main()
{cin>>n;long long a=log2(n);cout<<a+1;return 0;
}

T2

若此数是完全平方数输出其平方根,否则输出那一串字符

#include<cstdio>
#include<cmath>
using namespace std;
int main()
{int n;scanf("%d",&n);if (sqrt(n)!=floor(sqrt(n))) {printf("Wu Yongcong is in the pit");return 0;}printf("%d",(int)sqrt(n));
}

T3

等价求 gcd(a,b) g c d ( a , b ) gcd(a,b)

#include<cstdio>
#include<iostream>
using namespace std;
int gcd(int x,int y)
{if (x<y) swap(x,y);return x%y==0? y:gcd(y,x%y);
}
int main()
{int a,b;scanf("%d %d",&a,&b);printf("%d",gcd(a,b));
}

T4

改造快排
https://blog.csdn.net/xuxiayang/article/details/80515226

T5&T8

二进制公式推论,由于内存的设置,所以不能使用数组,该代码适用于两题

#include<cstdio>
using namespace std;
char c,d;int n,f;int m,k;
int read()
{f=0;while(c=getchar(),c<=47||c>=58);f=(f<<3)+(f<<1)+c-48;while(c=getchar(),c>=48&&c<=57) f=(f<<3)+(f<<1)+c-48;return f;
}
void write(int x)
{if(x>9) write(x/10);putchar(x%10+48);return;
}
void writeln(int x)
{write(x);putchar(10);return;
}
int main()
{n=read();m=read();while(m--){while(d=getchar(),d<65||d>69);k=read();if(d==65) writeln((n>>k)&1);if(d==66) writeln(n&((1<<k)-1));if(d==67) n^=(1<<k),writeln(n);if(d==68) n|=(1<<k),writeln(n);if(d==69) n&=~(1<<k),writeln(n);}
}

T6

详见https://blog.csdn.net/xuxiayang/article/details/80515266
nlogn n l o g n nlogn和 nn−−√ n n n\sqrt{n}都能过

nn−−√ n n n\sqrt{n}

#include<cstdio>
#include<cmath>
using namespace std;
int n,a[500001],len;
void write(int x){if(x>9)write(x/10);putchar(x%10+48);return;}
void writes(int x){write(x);putchar(32);return;}
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++){len=0;for (int j=1;j*j<=i;j++)if (i%j==0)a[++len]=j,writes(j);for (int j=len;j>0;j--)if(i/a[j]>a[j])writes(i/a[j]);putchar(10);}
}

nlogn n l o g n nlogn

#include<cstdio>
#include<vector>
using namespace std;int n;
vector<int>factor[500001];
void write(int x){if(x>9)write(x/10);putchar(x%10+48);return;}
void writes(int x){write(x);putchar(32);return;}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n/i;j++)factor[i*j].push_back(i);for(int i=1;i<=n;putchar(10),i++)for(int j=0;j<factor[i].size();j++)writes(factor[i][j]);
}

T7

因为 gcd(a,b)<min(a,b) g c d ( a , b ) < m i n ( a , b ) gcd(a,b),然后又因为 min(a,b)<maxlongint m i n ( a , b ) < m a x l o n g i n t min(a,b),所以可以只需要做一次高精度

#include<string>
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int a[202],m,ans[202],len1;
char s1[202];int gs,s=0;
string s2,s3;
void mod(int *x,int y)
{gs=0;for (int i=1;i<=len1;i++) {s=(gs<<3)+(gs<<1)+a[i];ans[i]=s/m;gs=s%m;}return;
}
int gcd(int x,int y)
{return y?gcd(y,x%y):x;
}
int main()
{scanf("%s %d",s1,&m);len1=strlen(s1);for (int i=0;i<len1;i++) a[i+1]=s1[i]-48;mod(a,m);if (gs==0) printf("%d",m);elseprintf("%d",gcd(m,gs));
}

T9

详见https://blog.csdn.net/xuxiayang/article/details/80409705

50分

O(n) O ( n ) O(n)筛素数,然后判断

#include<cmath>
#include<cstdio>
#include<algorithm>
using namespace std;int l,r,a[100000001],b[500001],ans,now;
int main()
{scanf("%d%d",&l,&r);a[1]=1;fill(a+2,a+2+r,2);for(int i=2;i<=ceil(sqrt(r));i++)for(int j=i;j<=r/i;j++)if(i==j) a[i*j]++;else a[i*j]+=2;for(int i=2;i<=r;i++)if(a[i]>now){if(i>=l) b[++ans]=i;now=a[i];}printf("%d\n",ans);for(int i=1;i<=ans;i++) printf("%d ",b[i]);
}

100分

动态规划+优化

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#define N 170000
#define M 100
#define r(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
int min1[N+1],min2[N+1],ans;
bool vis[M+1];
long long a[300],p[M+1],f[N+1],f1[N+1],m[N+1],t;
long long maxn=9223372036854775807LL,x,l,r;
string name,num,name2;
void make1(int i)//make1和make2是滚动
{r(j,1<<(i+1),N) f1[j]=maxn;r(j,1<<i,N){if(f[j]==maxn) continue;m[j]=min(m[j],f[j]);double y=log(maxn/f[j])/log(p[i+1]);y=min(y,min((double)(N/(j+1)-1),(double)min1[j]));t=1;r(k,1,y){t*=p[i+1];if(f[j]*t<f1[j*k+j]){f1[j*k+j]=f[j]*t;min2[j*k+j]=k;}}}
}
void make2(int i)
{r(j,1<<(i+1),N) f[j]=maxn;r(j,1<<i,N){if(f1[j]==maxn) continue;m[j]=min(m[j],f1[j]);double y=log(maxn/f1[j])/log(p[i+1]);y=min(y,min((double)(N/(j+1)-1),(double)min2[j]));t=1;r(k,1,y){t*=p[i+1];if(f1[j]*t<f[j*k+j]){f[j*k+j]=f1[j]*t;min1[j*k+j]=k;}}}
}
int main()
{r(i,2,M){if(!vis[i]) p[++p[0]]=i;r(j,1,p[0]){if(M/p[j]<i) break;vis[i*p[j]]=true;if(i%p[j]==0) break;}}f[1]=1;r(i,2,62) {f[i]=f[i-1]<<1;min1[i]=i-1;}r(i,63,N) f[i]=maxn;r(i,2,N) m[i]=maxn;r(i,1,16)if(i&1) make1(i);else make2(i);r(i,1<<17,N) m[i]=min(m[i],f[i]);x=maxn;for(int i=N;i>1;i--)if(m[i]<x){a[++a[0]]=m[i];x=m[i];}cin>>l>>r;//这之前的都是预处理r(i,1,a[0]) if(a[i]>=l&&a[i]<=r) ans++;printf("%d\n",ans);for(int i=a[0];i>0;i--) if(a[i]>=l&&a[i]<=r) cout<<a[i]<<' ';
}

【个人邀请赛】洛谷 Math趣味赛相关推荐

  1. 洛谷noip 模拟赛 day1 T3

    T7983 大芳的逆行板载 题目背景 大芳有一个不太好的习惯:在车里养青蛙.青蛙在一个n厘米(11n毫米s)的Van♂杆子上跳来跳去.她时常盯着青蛙看,以至于突然逆行不得不开始躲交叉弹.有一天他突发奇 ...

  2. 洛谷mNOIP模拟赛Day2-入阵曲

    题目背景 pdf题面和大样例链接:http://pan.baidu.com/s/1cawM7c 密码:xgxv 丹青千秋酿,一醉解愁肠. 无悔少年枉,只愿壮志狂. 题目描述 小 F 很喜欢数学,但是到 ...

  3. 洛谷乐多赛 yyy loves Maths VI (mode)

    题目描述 他让redbag找众数 他还特意表示,这个众数出现次数超过了一半 一共n个数,而且保证有 n<=2000000 而且每个数<2^31-1 时间限制 1s 空间限制 3.5M(你没 ...

  4. 洛谷 P5594 【XR-4】模拟赛 视频讲解(二维数组、模拟)

    洛谷 P5594 [XR-4]模拟赛(需要 二维数组) 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 ...

  5. 洛谷 10月 csp-s 模拟赛 T1,T2解析及代码

    洛谷 10月 csp-s 模拟赛 T1,T2解析及代码 T1 Magenta Potion 题目描述 给定一个长为 nnn 的整数序列 aaa,其中所有数的绝对值均大于等于 222.有 qqq 次操作 ...

  6. 洛谷1072 Hankson 的趣味题

    https://www.luogu.org/problem/show?pid=1072 Hankson 的趣味题 正解:素数筛+因数分解+乘法原理.简单地来说就是我不会! 但是考虑: 1.从b1入手, ...

  7. upc 2022/2/27 校赛+洛谷6599

    The problem is to construct a sequence that satisfy the following conditions: the length of the sequ ...

  8. 【个人邀请赛】洛谷 小比赛

    前言 话说其实写这篇博客是看了之前某dalao这样写,于是我就效仿了一下 不过那位dalao据说公开赛被刷下来了,好像是因为题目过水...后来他又奋发图强,出了几个稍微难一点的题,不过还是没有通过,深 ...

  9. 【LGR-142-Div.4】洛谷入门赛 #13 考后分析与题解

    洛谷入门赛 #Round 13 比赛分析与总结 T1 魔方 题目背景 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 数据规模与约定 分析 AC代码 注意 T2 教学楼 ...

最新文章

  1. 计算机网络 实验六 静态路由配置,《计算机网络》实六 静态路由配置 实验报告.doc...
  2. 老板请吃饭 | 李笑来约你聊聊垂直社区的产品和运营
  3. linux jdk安装_linux运维 - 用脚本快速安装jdk
  4. ZOJ 2317 Nice Patterns Strike Back(矩阵快速幂)
  5. zenmap nmap输出无显示_液晶显示器高压板坏的现象及维修思路 。
  6. .NET平台下开源框架
  7. CentOS6/CentOS7系统配置IPv6地址的方法
  8. 2022美国大学生数学建模竞赛B题思路
  9. mysql 添加列,修改列,删除列
  10. java打印出日历_java控制台打印本月的日历
  11. 数电第四章:组合逻辑电路
  12. 计算机考研用python_计算机考研408 130+个人攻略
  13. 山东大学计算机文化复习纲要
  14. 系统仿真实践中的精益思维(随感)
  15. mac系统升级导致VirtualBox报Kernel driver not installed (rc=-1908)
  16. 【毕业设计】python+深度学习+opencv实现植物识别算法系统
  17. 法官的假发是用来吓人的?
  18. 2021届校招求职流程全解析(IT企业和国企)
  19. 数据丢包怎么修复_网络丢包怎么办?这些解决办法不得不知
  20. 批量合并多个PDF文件

热门文章

  1. 最近想写一个类似鬼泣 收集红魂的功能,陆续写点东西作为笔记
  2. Django中urls路由转发和路由的path方法
  3. OpenCV之图像分割(五) 证件照背景替换
  4. 不做跨境电商的外贸企业生意越来越难做
  5. [福利]Process On 免费下载模板
  6. 手机圈:中兴Axon 30素皮至臻版正式上市,512G售价3498元!
  7. 解决eclipse突然打不开了的问题
  8. 国际化之locale
  9. hacker and painter
  10. 一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如,6的因子1,2,3而6 = 1+2+3,因此6是完数。编程序找出1000之内的所有完数