[日常摸鱼]bzoj1257余数之和

题意:输入$k,n$,求$\sum_{i=1}^n k \mod i$

$k \mod i=k-i*\lfloor \frac{k}{i} \rfloor $,$n$个$k$直接求和,后面那个东西像比较套路的分段求和

算k/(k/i)这种东西的时候还要注意判一下分母为0什么的…

#include<cstdio>
typedef long long lint;
lint n,k,ans;
inline lint min(lint a,lint b){return a<b?a:b;}
inline lint getsum(lint i)
{
    return i*(i+1)/2;
}
int main()
{
    scanf("%lld%lld",&n,&k);
    ans=n*k;
    for(register lint i=1,pos;i<=n;i=pos+1)
    {
        pos=(k/i?min(n,k/(k/i)):n);
        ans-=(getsum(pos)-getsum(i-1))*(k/i);
    }
    printf("%lld",ans);
    return 0;
}

原文地址:https://www.cnblogs.com/yoooshinow/p/8428468.html

时间: 2024-10-10 19:28:06

[日常摸鱼]bzoj1257余数之和的相关文章

[日常摸鱼]Uva11178Morley&#39;s Theorem-几何

题意:给一个$\Delta ABC$,分别做三个角的三等分线相交成$\Delta DEF$,求出$D,E,F$的坐标. 直接根据题意模拟 #include<cstdio> #include<cmath> #include<algorithm> using namespace std; struct Point { double x,y; Point(double x1=0,double y1=0){x=x1;y=y1;} }; typedef Point Vector;

[日常摸鱼]「网络流 24 题」试题库

https://loj.ac/problem/6006 题意:$n$道题每题有若干种类别,一共有$k$种类别,告诉你每种类别各自需要的题数,构造一种选题目的方案并输出方案. 虽然题目好像没说不过一道题应该不能选多次-(反正我这么写的过掉了x 这道题做下来感觉莫名的很爽233 把每道题向其对应的类别连容量为1的边,源点向所有题也连容量为1的边,而所有类别向汇点连的边容量为该题所需要的题数. 从源点到汇点跑一遍最大流,每次找到增广路我们要更新这条路上唯一的那个对应类别的结点,于是我们就想到用EK来实

[日常摸鱼]bzoj1001狼抓兔子-最大流最小割

题意就是求最小割- 然后我们有这么一个定理(最大流-最小割定理 ): 任何一个网络图的最小割中边的容量之和等于图的最大流. (下面直接简称为最大流和最小割) 证明: 如果最大流>最小割,那把这些割边删去之后依然能找到一条增广路使得源点和汇点联通,和这些边是最小割矛盾.故最大流$\leq$最小割. 而如果最大流<最小割,可是这样通过这些割边还能有更大的流,和最大流矛盾. 综上,最大流=最小割~ 然后看看这道题-哇$n\leq 1000$,百万个点百万条边-好吧Dinic其实跑得过-而且还蛮快的-

[日常摸鱼]JSOI2008最大数

校运会的时候随手抽的题- 一句话题意 维护一个序列,初始为空,要求滋兹: 1.查询这个序列末尾$x$个数的最大值 2.设上一次查询的答案为$t$(如果还没查询$t=0$),在末尾插入一个数$(x+t)mod d$,$d$为给定常数 很容易想到用线段树做:记录序列的末尾,然后直接单点修改区间查询 本来想随便写完就过了的-然后一直爆零- 因为我写了一句 while(n--) 然后这题应该就没什么要注意的地方了233 贴代码 #include<cstdio> #include<cstring&

[日常摸鱼]UVA393 The Doors 简单计算几何+最短路

The  Boy Next   Doors 题意:给定一个固定大小的房间($x,y$的范围都是$[0,10]$),有$n$个墙壁作为障碍(都与横坐标轴垂直),每个墙壁都有两扇门分别用四个点来描述,起点终点固定在$(0,5)$和$(10,5)$,求起点到终点的最短路长度,$n<=18$ 题解: 我们把每堵墙的每一"段"作为一条线段,对任意两点$u,v$,如果两点间的连线不和其他线段相交,那我们从$u$走到$v$的最短距离就是他们的欧几里得距离,对所有点对都这么做一遍,处理出所有能够

[日常摸鱼]杜教筛

因为博主比较菜所以可能一些地方写的有问题或者不清楚,以及我的废话有点多- 在这里先感谢下小伙伴ww @MoebiusMeow 的帮助~ 参考资料: [1]浅谈一类积性函数的前缀和(skywalkert) [2]杜教筛--省选前的学习1(_rqy) (下面约定$[p]$表示满足条件$p$时为1不满足为0,以及下面说的函数都是数论函数) 前置技能(一些定义) 数论函数:若$f:Z^{+} \rightarrow C$,则称$f$为数论函数 积性函数:若一个数论函数$f(n)$对于所有$m_1 \bo

[日常摸鱼]字符串相关

最近开始学字符串-之前暑假听JOHNKROM大爷讲这个的时候就很懵(当时根本没碰过这个东西-) 这里大概会有一些相关的算法和自己做的题,还有存一些模板啥的. 由于我太弱了所以可能不会写有关原理的东西(或者等我哪天会了有空再补)如果是刚学的话还是去网上找教程吧-我就存个题还有模板啥的orz Trie字典树(Trie),根节点为空节点,其他节点(或边上)放字母,然后节点上还能储存一些其他信息. 1.一个类似模板题的东西:luogu2580 建一颗Trie,把所有名字插进去,结束的地方打个标记,具体见

[日常摸鱼]luogu1613跑路

新年A的第一道题2333 https://www.luogu.org/problemnew/show/P1613 题意:给一张有向图,每条边长为1,每个单位时间只能走$2^k$的长度,$k$可以任意选,问从起点到终点的最短时间 我好菜呀一看到题还是不会做orz 我们用一个$G[i][j][k]$数组来表示$i$到$j$是否存在$2^k$的路径,用$dis[i][j]$表示$i$到$j$需要的最短时间,有连边的两个点就直接让$G[i][j][0]=1,dis[i][j]=1$,然后类似倍增那样子去

[日常摸鱼]luogu3398仓鼠找sugar-树链剖分

https://www.luogu.org/problemnew/show/P3398 题意:一颗$n$个点的树,$q$次询问两条链$(a,b),(c,d)$是否有交 树剖裸题orz 一开始的想法是求出$lca_1=lca(a,b),lca_2=lca(c,d)$,对于深度大的那个$lca$用dfs序判断是否在另一条链上,然后到现在都不知道为什么一直wa- 改成判断深度大的那个$lca$是否和另外两个点的其中某个点有父子关系好像就行了- #include<cstdio> #include<