构造+贪心/数论


  为什么只有两个标题呢……因为第二题我不会……

怎样提高智商

  构造题……然而一开始半天我都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】的更多相关文章

  1. 【UOJ Round #1】

    枚举/DP+排列组合 缩进优化 QAQ我当时一直在想:$min\{ \sum_{i=1}^n (\lfloor\frac{a[i]}{x}\rfloor + a[i] \ mod\ x) \}$ 然而 ...

  2. 【UOJ Round #8】

    A 一道不错的题,虽然大家都觉得是水题,然而蒟蒻我想出来的好慢……Orz alpq 发现其实就是一个网格图,每一个大块都是同一颜色……横纵坐标互不干扰…… //UOJ Round #8 A #incl ...

  3. 【UOJ Round #3】

    枚举/二分 C题太神窝看不懂…… 核聚变反应强度 QwQ很容易发现次小的公约数一定是gcd的一个约数,然后……我就傻逼地去每次算出a[1],a[i]的gcd,然后枚举约数……这复杂度……哦呵呵... ...

  4. 【CS round 34】Minimize Max Diff

    [题目链接]:https://csacademy.com/contest/round-34/task/minimize-max-diff/ [题意] 给你n个数字; 数组按顺序不下降; 让你删掉k个数 ...

  5. 【CS Round 34】Max Or Subarray

    [题目链接]:https://csacademy.com/contest/round-34/summary/ [题意] 让你找一个最短的连续子串; 使得这个子串里面所有数字or起来最大; [题解] 对 ...

  6. UOJ #30【CF Round #278】Tourists

    求从$ x$走到$ y$的路径上可能经过的最小点权,带修改  UOJ #30 $ Solution:$ 如果两个点经过了某个连通分量,一定可以走到这个连通分量的最小值 直接构建圆方树,圆点存原点的点权 ...

  7. UOJ #30. 【CF Round #278】Tourists

    Description Cyberland 有 n 座城市,编号从 1 到 n,有 m 条双向道路连接这些城市.第 j 条路连接城市 aj 和 bj.每天,都有成千上万的游客来到 Cyberland ...

  8. 【57.97%】【codeforces Round #380A】Interview with Oleg

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  9. 【42.86%】【Codeforces Round #380D】Sea Battle

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

随机推荐

  1. 附001.etcd配置文件详解

    一 示例yml配置文件 # This is the configuration file for the etcd server.   # Human-readable name for this m ...

  2. 网页图表Highcharts实践教程之图表区

    网页图表Highcharts实践教程之图表区 网页图表Highcharts图表区 图表区是图表的基本区域.所有的数据和图形都是绘制在图表区中.从图形绘制范围来分,图表区域分为外层图表区和绘图区.本章将 ...

  3. Web大前端面试题-Day4

    1. 如何实现瀑布流? 瀑布流布局的原理:1) 瀑布流布局要求要进行布置的元素等宽,   然后计算元素的宽度,   与浏览器宽度之比,得到需要布置的列数;2) 创建一个数组,长度为列数,   里面的值 ...

  4. zookeeper 节点启动时的更新机制

    使用zk的应用节点和zk数据本身的同步,当系统启动时使用zk配置的信息和zk本身存储不一致, 此时应存在一个更新机制将应用配置数据和zk数据更新一致. 启动时更新拉取zk配置中心的更新本地数据,以zk ...

  5. Qt Quick自定义样式一套

    弄了几个月的Qt,基本上以写上位机程序和工厂用的一些工具为主.老大的要求是快速.稳定.不出问题,不过他嫌.net要安装.还有升级(刚开始的时候由于这个出了些小问题),MFC开发东西又实在费劲,就让我找 ...

  6. BZOJ.1076.[SCOI2008]奖励关(概率DP 倒推)

    题目链接 BZOJ 洛谷 真的题意不明啊.. \(Description\) 你有k次选择的机会,每次将从n种物品中随机一件给你,你可以选择选或不选.选择它会获得这种物品的价值:选择一件物品前需要先选 ...

  7. [NOIp2003提高组]神经网络

    OJ题号:洛谷1038 思路:拓扑排序,注意细节.1.题目中求和运算$C_i=\displaystyle{\sum_{(j,i)\in E}W_{ji}C_j-U_i}$中$U_i$在求和运算外,只要 ...

  8. HDU 4818 RP problem (高斯消元, 2013年长春区域赛F题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4818 深深地补一个坑~~~ 现场赛坑在这题了,TAT.... 今天把代码改了下,过掉了,TAT 很明显 ...

  9. LPC-LINK 2 Board IO

  10. Yarn中ResourceManager的RPC协议

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemNjXzAwMTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...