http://csustacm.com:4803/contest/27/problem/A

这是一道线段树套素数筛的题 深思熟虑了两天后在快睡着的时候突然想到了解法 我好菜啊
首先要枚举素数 对于每个素数 枚举它的倍数 如果没有访问过就把它前面的所有的访问过的数作为它的值(枚举素数 所以前面访问过的一定是最小素因子<=它的最小素因子的) 范围是1e6 那么就先预处理 然后问啥写啥就好了

/***************************** Name   :“一个部族,一个民族,一个弗雷尔卓德。”* Time   :4-3-2019 23:59* Author :大哥* Type   :素数筛 线段树* 版权所有_翻版不管*****************************/
#include <bits/stdc++.h>
using namespace std;
#define N 1000005
#define maxn 1000005
int b,ans;
struct node{int l,r,w;
}tree[4000005];
int dp[N];
inline void build(int k,int ll,int rr)//建树
{tree[k].l=ll,tree[k].r=rr;if (tree[k].l==tree[k].r){return;}int m=(ll+rr)/2;build(k*2,ll,m);build(k*2+1,m+1,rr);tree[k].w=tree[k*2].w+tree[k*2+1].w;
}
inline void change_point(int k)//单点修改
{if (tree[k].l==tree[k].r){tree[k].w=1;return;}int m=(tree[k].l+tree[k].r)/2;if (b<=m) change_point(k*2);else change_point(k*2+1);tree[k].w=tree[k*2].w+tree[k*2+1].w;
}
inline void ask_interval(int k)//区间查询
{if (tree[k].r<b){ans+=tree[k].w;return;}int m=(tree[k].l+tree[k].r)/2;ask_interval(k*2);if (b>m) ask_interval(k*2+1);
}bool vis[maxn+5];
bool number[maxn+5];
int prime[maxn+5];
void isprime(){int i,j,c=0;memset(number,true,sizeof(number));for (i=2;i<=maxn;i++){if (number[i]) prime[c++]=i;for (j=0;j<c&&prime[j]*i<=maxn;j++){number[prime[j]*i]=false;if (i%prime[j]==0) break;}}
}
int main(){
#ifdef LOCALfreopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);
#endifisprime();build(1,1,N);b=1;change_point(1);for (int i=2; i<N; i++){if (number[i]){b=0;while (b+i<N){b+=i;if (!vis[b]){ans=0;ask_interval(1);dp[b]=ans;change_point(1);vis[b]=true;}}}}int t,n;scanf("%d",&t);while (t--){scanf("%d",&n);printf("%d\n",dp[n]);}
}

走你~~~~~~~~~~~~~~~~~~~~

“一个部族,一个民族,一个弗雷尔卓德。”相关推荐

  1. A.一个部族,一个民族,一个弗雷尔卓德(素数筛+线段树)

    "一个部族,一个民族,一个弗雷尔卓德." Time limit1000 ms 题目链接https://csustacm.fun/problem/1083 Description 寒 ...

  2. A“一个部族,一个民族,一个弗雷尔卓德。”(素数筛,逆序对,树状数组)

    "一个部族,一个民族,一个弗雷尔卓德." Description 寒冰射手艾希新学会了一个技能,艾希通过这个技能成为了一名声名远扬的神箭手,从此再也无人敢侵犯弗雷尔卓德! 这个技能 ...

  3. A“一个部族,一个民族,一个弗雷尔卓德。”(素数筛,逆序对,树状数组)...

    "一个部族,一个民族,一个弗雷尔卓德." Description 寒冰射手艾希新学会了一个技能,艾希通过这个技能成为了一名声名远扬的神箭手,从此再也无人敢侵犯弗雷尔卓德! 这个技能 ...

  4. 哈哈哈 一个小玩意 感觉就是一个引子 可以拿来玩

    有兴趣的就自己复制了自己玩.下面是自己玩的截图. 哈哈   本来想把数据存起来的 还是懒  等到时候上课的时候在写吧.下面是代码 1 package managerSystem; 2 3 import ...

  5. 个是云计算,一个大数据,一个人工智能,

    我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之间好像互相有关系,一般谈云计算的时候也会提到大数据,谈人工智能的时候也会提 ...

  6. phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php)

    phpstudy一个域名配置两个网站(一个是thinkphp5,一个是原生php) 一.总结 一句话总结:把原生php的网站直接放到thinkphp5的public目录下可以解决以stem.aaaa. ...

  7. 一个表对应另一个表中多个主键的查询方法(把一个表当成两个表用)

    表t_Record PID(主键)   SendUserID(发送人)   ReceiveUserID(接收人)    1              1                      2 ...

  8. C语言---写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串

    题目: 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串. #include <string.h> #include <stdio.h> void left_re ...

  9. python从外部传入参数_从另一个Python脚本运行一个Python脚本,并传入参数 - python...

    我想从另一个Python脚本运行一个Python脚本.我想像使用命令行一样传递变量. 例如,我将运行我的第一个脚本,该脚本将遍历值列表(0.1.2.3),并将其传递给第二个脚本,依次为script2. ...

最新文章

  1. websocketd 实现浏览器查看服务器实时日志
  2. jq获取最后一个子节点_如何选择jQuery中的最后一个子元素?
  3. 自由职业的前半年,我是如何度过的?
  4. 信息学奥赛一本通(1205:汉诺塔问题)
  5. bzoj 4548: 小奇的糖果 bzoj 3658: Jabberwocky(双向链表+树状数组)
  6. mos管的rc吸收电路计算_RCD吸收电路
  7. 二分图判断以及二分图最大匹配
  8. w10启动无法修复此计算机,Win10启动修复无法修复你的电脑解决方法
  9. JavaScript常见设计模式
  10. debian配置网卡
  11. Big Brother监控安装
  12. 懂计算机word的博主,2010 word 如何新建目录
  13. 【UE4从零开始 083】体积光照贴图
  14. 计算机不同进制数之间的转换,计算机进制数之间的转换002
  15. 导购提成怎么算_导购提成应该怎么算?
  16. 制造生产模式的演变与敏捷制造
  17. 我要减肥~~~~~~
  18. 高一物理借助传感器用计算机测速度,【2-2讲义·习题】第4节 实验:用打点计时器测速度...
  19. Revit文件导出svg格式思考
  20. php实现ps修图,ps人像怎么快速修图

热门文章

  1. (Win8、Win7)MAK激活密钥分享【资源有限】
  2. Docker是什么(Docker-CE)
  3. IDriss是一个Web3身份协议,选择马蹄链注册大概10刀
  4. 激战2 wvw大团基础配置
  5. 网关状态检测 echo request/reply
  6. 聊聊P6赢得值理论的运用
  7. 基于单片机的传送带计数系统
  8. svn插件崩溃解决方法
  9. 【借鉴/转载】WSI的处理
  10. 毕业生提高求职成功率的3个方法