【UOJ Round #5】
构造+贪心/数论
为什么只有两个标题呢……因为第二题我不会……
怎样提高智商
构造题……然而一开始半天我都yy不出来……
后来我想:这题应该不会特别麻烦,而且既然样例只给了1,可能再给大一点就让人发现规律了……(心理战的可怕0.0?)然后yy了一下,发现全部都写0的答案是最多的,是$4*3^{n-1}$,然后就过了……
唯一用到的是快速幂?
- //UOJ Round #5 A
- #include<cstdio>
- #include<cstdlib>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #define rep(i,n) for(int i=0;i<n;++i)
- #define F(i,j,n) for(int i=j;i<=n;++i)
- #define D(i,j,n) for(int i=j;i>=n;--i)
- using namespace std;
- const int MOD=;
- void read(int &v){
- v=; int sign=; char ch=getchar();
- while(ch<'' || ch>'') {if (ch=='-') sign=-; ch=getchar();}
- while(ch>=''&&ch<='') {v=v*+ch-''; ch=getchar();}
- v*=sign;
- }
- typedef long long LL;
- LL pow_mod(int a,int b){
- LL r=,base=a;
- while(b){
- if (b&) r=(r*base)%MOD;
- base=base*base%MOD;
- b>>=;
- }
- return r;
- }
- int main(){
- int n=;
- read(n);
- printf("%lld\n",pow_mod(,n-)*%MOD);
- F(i,,n) printf("A 0 0 0 0\n");
- return ;
- }
怎样跑得更快
Orz vfk&trz!
这题真的是一道非常好的题!
然而由于我实在太傻逼,直到现在才看懂vfk的题解……vfk的题解写的真的非常好,清晰易懂0.0
感觉莫比乌斯反演真是好神奇>_<,不过做过这道题以后对莫比乌斯反演又有了些新的感悟?
小范围枚举倍数or约数进行反演感觉更简单直观……易于理解……(然而大多数题目的数据范围都比较大?QwQ)
- //UOJ Round5 C
- #include<vector>
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<iostream>
- #include<algorithm>
- #define rep(i,n) for(int i=0;i<n;++i)
- #define F(i,j,n) for(int i=j;i<=n;++i)
- #define D(i,j,n) for(int i=j;i>=n;--i)
- using namespace std;
- typedef long long LL;
- inline int getint(){
- int r=,v=; char ch=getchar();
- for(;!isdigit(ch);ch=getchar()) if (ch=='-') r=-;
- for(; isdigit(ch);ch=getchar()) v=v*-''+ch;
- return r*v;
- }
- const int N=1e5+,P=;
- /*******************template********************/
- int n,c,d,q;
- int b[N],f_r[N],f_z[N],hx[N],x[N],g[N];
- inline void exgcd(LL a,LL b,LL &d,LL &x,LL &y){
- if (!b){d=a;x=;y=;}
- else {exgcd(b,a%b,d,y,x); y-=(a/b)*x;}
- }
- inline LL inv(int a){
- LL d,x,y;
- exgcd(a,P,d,x,y);
- return d== ? (x+P)%P : -;
- }
- inline LL Pow(LL a,int b){
- LL r=;
- for(;b;b>>=,a=a*a%P) if (b&) r=r*a%P;
- return r;
- }
- void solve(){
- F(i,,n) f_z[i]=(LL)b[i]*g[i]%P;
- F(i,,n)
- for(int j=i+i;j<=n;j+=i){
- f_z[j]-=f_z[i];
- if (f_z[j]<) f_z[j]+=P;
- }
- F(i,,n){
- if (f_r[i]==- && f_z[i]!=){puts("-1");return;}
- hx[i]=(LL)f_r[i]*f_z[i]%P;
- }
- D(i,n,)
- for(int j=i+i;j<=n;j+=i){
- hx[i]-=hx[j];
- if (hx[i]<) hx[i]+=P;
- }
- F(i,,n) x[i]=(LL)hx[i]*g[i]%P;
- F(i,,n) printf("%d%c",x[i],i==n?'\n':' ');
- }
- int main(){
- #ifndef ONLINE_JUDGE
- freopen("C.in","r",stdin);
- freopen("C.out","w",stdout);
- #endif
- n=getint(); c=getint(); d=getint(); q=getint();
- F(i,,n){
- f_r[i]=Pow(i,abs(c-d));
- if (c<d) f_r[i]=inv(f_r[i]);
- }
- F(i,,n) g[i]=Pow(Pow(i,d),P-);
- F(i,,n)
- for(int j=i+i;j<=n;j+=i){
- f_r[j]-=f_r[i];
- if (f_r[j]<) f_r[j]+=P;
- }
- F(i,,n) f_r[i]=inv(f_r[i]);
- while(q--){
- F(i,,n) b[i]=getint();
- solve();
- }
- return ;
- }
【UOJ Round #5】的更多相关文章
- 【UOJ Round #1】
枚举/DP+排列组合 缩进优化 QAQ我当时一直在想:$min\{ \sum_{i=1}^n (\lfloor\frac{a[i]}{x}\rfloor + a[i] \ mod\ x) \}$ 然而 ...
- 【UOJ Round #8】
A 一道不错的题,虽然大家都觉得是水题,然而蒟蒻我想出来的好慢……Orz alpq 发现其实就是一个网格图,每一个大块都是同一颜色……横纵坐标互不干扰…… //UOJ Round #8 A #incl ...
- 【UOJ Round #3】
枚举/二分 C题太神窝看不懂…… 核聚变反应强度 QwQ很容易发现次小的公约数一定是gcd的一个约数,然后……我就傻逼地去每次算出a[1],a[i]的gcd,然后枚举约数……这复杂度……哦呵呵... ...
- 【CS round 34】Minimize Max Diff
[题目链接]:https://csacademy.com/contest/round-34/task/minimize-max-diff/ [题意] 给你n个数字; 数组按顺序不下降; 让你删掉k个数 ...
- 【CS Round 34】Max Or Subarray
[题目链接]:https://csacademy.com/contest/round-34/summary/ [题意] 让你找一个最短的连续子串; 使得这个子串里面所有数字or起来最大; [题解] 对 ...
- UOJ #30【CF Round #278】Tourists
求从$ x$走到$ y$的路径上可能经过的最小点权,带修改 UOJ #30 $ Solution:$ 如果两个点经过了某个连通分量,一定可以走到这个连通分量的最小值 直接构建圆方树,圆点存原点的点权 ...
- UOJ #30. 【CF Round #278】Tourists
Description Cyberland 有 n 座城市,编号从 1 到 n,有 m 条双向道路连接这些城市.第 j 条路连接城市 aj 和 bj.每天,都有成千上万的游客来到 Cyberland ...
- 【57.97%】【codeforces Round #380A】Interview with Oleg
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【42.86%】【Codeforces Round #380D】Sea Battle
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
随机推荐
- 003.NFS配置实例
一 NFS常见服务管理 1.1 启动NFS [root@imxhy ~]# systemctl start nfs #CentOS7.x系列启动 [root@imxhy ~]# service nfs ...
- Spring 中的事务操作、注解、以及 XML 配置
事务 事务全称叫数据库事务,是数据库并发控制时的基本单位,它是一个操作集合,这些操作要么不执行,要么都执行,不可分割.例如我们的转账这个业务,就需要进行数据库事务的处理. 转账中至少会涉及到两条 SQ ...
- 使用ApiPost测试接口时需要先登录怎么办?利用Cookie模拟登陆!
ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它支持模拟POST.GET.PUT等常见请求,是后台接口开发者或前端.接口测试人员不可多得的工具 . 下 ...
- 常见的网络攻击(XSS,SQL注入,CSRF)
一.XSS 二.SQL注入 三.CSRF
- jquery 下拉列表选择值
选择下拉列表值样例方式 $("#updateAppName").get(0).selectedIndex = 0; $("#updateAppName").ge ...
- android listview 优化
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha android convertview作用 ======= 1,convertView复 ...
- 表达式括号匹配(stack.cpp)
[问题描述] 假设一个表达式有英文字母(小写).运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回 ...
- [Java]Get与Post,客户端跳转与服务器端跳转
http://www.thinksaas.cn/group/topic/133101/ 虽然说get 与post 问题很老套了,但是作为web 开发人员来说对于这个的理解确实很有必要,其实说到get ...
- MikroTik RouterOS虚拟机/实体机安装方法
一.设置光驱 二.安装RouerOS 按a全选,按i安装,q退出,空格可以选取或取消选取.这里是选择你要安装的组件. 是否要保存原有配置:是否要提交.一路y. 安装好之后按回车重启:之后为这个界面,安 ...
- HDU 4815 Little Tiger vs. Deep Monkey(2013长春现场赛C题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4815 简单的DP题. #include <stdio.h> #include <st ...