10.21刷题记录

来源:互联网 发布:网络安全技术一般包括 编辑:程序博客网 时间:2024/05/19 20:42

今天上午上课的时候有点头疼 所以没认真想题 之后下午家里又来客人。
效率极其低下的一天。

车站分级 NOIp普及组2013 T4

吐槽一句这题是昨天就知道正解的但是今天早上才ac
就是个简单的拓扑排序 没有经过的点向区间中经过的点连边就好了(画一下图就可以明白)
但是 我昨天智障到把AddEdge写错 之后还没有a是因为边表数组应该开到maxn*maxn (就这么神奇) 再之后是开始建边的时候一个小优化卡了10分

关押罪犯 NOIp提高组2010 T3

这是当年提高组只有四道题的时候的T3
就是个并查集 只需要记住敌人的敌人就是朋友就好(就是敌人的敌人和你必须在一个牢房里面)之后再随便搞搞然后输出 敌人数组e初始化为-1

斐波那契公约数

这道题的关键在于那个重要的结论 代码本身超级短
吐槽我自己的迷之字体……
就是把第m第n项的最大公约数转化为序号的最大公约数

#include<iostream>#include<cstdio>using namespace std;int gcd(int a,int b){    if(!b) return a;    else return gcd(b,a%b);}int n,m;int f[100000007];int main(){    scanf("%d%d",&n,&m);    int p=gcd(n,m);    f[1]=1;    f[2]=1;    for(int i=3;i<=p;i++)    {        f[i]=(f[i-1]+f[i-2])%100000000;    }    printf("%d\n",f[p]);    return 0;}

(本来我差点要玩到睡觉 被小姐姐问这道题怎么回事就饿着肚子给她做题 看来小姐姐果然可以帮助学习呀 大雾)

小Z的袜子 bzoj2038

这道题我其实没搞懂 只是抄了黄学长的代码 明天一定一定要去搞懂分块这个奇怪的东西。
反正这题是莫队模版题。就是分块之后再排个序然后搞一搞就好了。

余数求和 CQOI2007

这道题也是分块 可以导出一个奇怪的式子然后发现那个值只有根号k种取值范围
但是我其实也没有懂 /手动滑稽 明天把这些话都删掉好啦

#include<iostream>#include<algorithm>#include<cstdio>using namespace std;int main(){    long long n,k;    scanf("%lld%lld",&n,&k);    long long ans=n*k;    for(long long l=1,r;l<=min(n,k);l=r+1)    {        if(k/l!=0) r=min(k/(k/l),n);        else r=n;        ans-=(k/l)*(r-l+1)*(l+r)/2;    }    printf("%lld",ans);    return 0;}

明天的目标是A掉雅加达的摩天楼和剩余的普及组T4
洛谷R4 估计是药丸

原创粉丝点击