1. P1327数列排序

题目描述

给定一个数列{an},这个数列满足ai≠aj(i≠j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换?

输入输出格式

输入格式:

第一行,正整数n (n<=100,000)。

以下若干行,一共n个数,用空格分隔开,表示数列{an},任意-231<ai<231。

输出格式:

只有一行,包含一个数,表示最少的交换次数。

输入输出样例

输入样例#1:

8
8 23 4 16 77 -5 53 100
输出样例#1:

5

---------------------------------------------------------------------------------------------------------------
本以为是逆序对,发现不一定相邻交换
找一条交换链,从原位置到新位置不停地走,最终会是一个环
注意每次加cnt-1,因为最后一次两个都到了正确位置
代码实现原位置封装结构体,排序,flag代表归位,走就行了
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=100005; struct node{
int o,w;
}a[N];
bool cmp(const node &a,const node &b){
return a.w<b.w;
}
int n,flag[N],ans=0; //guiwei
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i].w); a[i].o=i;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
if(flag[i]==0){
int now=i,cnt=0;
while(flag[now]==0){
cnt++;
flag[now]=1;
now=a[now].o;
}
ans+=cnt-1;
}
}
cout<<ans;
}
 2.P1630求和

题目描述

求1^b+2^b+……+a^b的和除以10000的余数。

输入输出格式

输入格式:

第一行包含一个正整数N,表示共有N组测试数据;

接下来N行,每行包含两个正整数a和b。

【数据规模】

对于30%的数据中,满足N<=10,a,b<=1000;

对于100%的数据中,满足N<=100,a,b<=1000000000;

输出格式:

共N行,每行一个对应的答案。

输入输出样例

输入样例#1:

1
2 3
输出样例#1:

9
------------------------------------------------------------------------------------------
暴力只能拿30分
用f[i]表示i^b%10000的结果,考虑每个fi对答案的贡献 a^b mod 10000=(a+10000)^b mod 10000
复杂度O(10000*logb*N)
不用long long也可以
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int MOD=10000,N=10005;
typedef long long ll;
int n;
ll a,b;
ll f[N]; ll powMod(ll a,ll b){
ll ans=1;
for(;b;b>>=1,a=(a*a)%MOD)
if(b&1) ans=(ans*a)%MOD;
return ans;
}
ll solve(ll a,ll b){
for(int i=1;i<=MOD;i++)
f[i]=powMod(i,b);
ll div=a/MOD,mod=a%MOD;
ll ans=0;
for(int i=1;i<=MOD;i++){
ans=(ans+div*f[i])%MOD;
if(i<=mod) ans=(ans+f[i])%MOD;
}
return ans;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
memset(f,0,sizeof(f));
scanf("%lld%lld",&a,&b);
cout<<solve(a,b)<<"\n";
}
}
 3.P1403约数研究

题目描述

科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel2”的长时间运算成为了可能。由于在去年一年的辛苦工作取得了不错的成绩,小联允许用“Samuel2”进行数学研究。

小联最近在研究和约数有关的问题,他统计每个正数N的约数的个数,并以f(N)来表示。现在小联希望用“Samuel2”来统计f(1)到f(N)的累加和M。

f(n)表示n的约数个数,现在给出n,要求求出f(1)到f(n)的总和。

输入输出格式

输入格式:

输入一行,一个整数n

输出格式:

输出一个整数,表示总和

输入输出样例

输入样例#1:

3
输出样例#1:

5
------------------------------------
一开始想用唯一分解加约数个数然和求和
看到是求1~n,能不能像筛法那样,突然一想,考虑每个数的贡献不就是n/i,太水了,━━( ̄ー ̄*|||━━
#include<iostream>
using namespace std;
int n,ans=;
int main(){
cin>>n;
for(int i=;i<=n;i++) ans+=n/i;
cout<<ans;
}

4. gcd区间

题目描述

给定一行n个正整数a[1]..a[n]。

m次询问,每次询问给定一个区间[L,R],输出a[L]..a[R]的最大公因数。

输入输出格式

输入格式:

第一行两个整数n,m。

第二行n个整数表示a[1]..a[n]。

以下m行,每行2个整数表示询问区间的左右端点。

保证输入数据合法。


输出格式:

共m行,每行表示一个询问的答案。

输入输出样例

输入样例#1:

5 3
4 12 3 6 7
1 3
2 3
5 5
输出样例#1:

1
3
7

说明

对于30%的数据,n <= 100, m <= 10

对于60%的数据,m <= 1000

对于100%的数据,1 <= n <= 1000,1 <= m <= 1,000,000

                0 < 数字大小 <= 1,000,000,000
-------------------------------------
O(n*n)预处理就好了

Luogu题目集合[6/未完待续]的更多相关文章

  1. Codeforces水题集合[14/未完待续]

    Codeforces Round #371 (Div. 2) A. Meeting of Old Friends |B. Filya and Homework A. Meeting of Old Fr ...

  2. 关于DOM的一些总结(未完待续......)

    DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.query ...

  3. C++语言体系设计哲学的一些随想(未完待续)

    对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值.具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符.该类型的数据可以包含的值的范围是什么. (2)定义操作的 ...

  4. 布隆过滤器(Bloom Filter) 未完待续

    布隆过滤器雏形 未完待续..... 计算错误率 现在有一个空额布隆过滤器, 过滤器里的bit array的大小是m. 咱来插入一个元素. 这次插入过程中的第一个hash函数会算出一个位置, 然后把这个 ...

  5. odoo11 model+Recordset 基础未完待续

    Model 一个模型代表了一个业务对象 本质上是一个类,包含了同django flask一样的数据字段 所有定义在模型中的方法都可以被模型本身的直接调用 现在编程范式有所改变,不应该直接访问模型,而是 ...

  6. PAT A1098 Insertion or Heap Sort (25 分)——堆排序和插入排序,未完待续。。

    According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...

  7. Hibernate二级缓存(未完待续)

    1.Hibernate的cache介绍: Hibernate实现了良好的Cache机制,可以借助Hibernate内部的Cache迅速提高系统的数据读取性能.Hibernate中的Cache可分为两层 ...

  8. 构建Linux根文件系统(未完待续)

          所谓制作根文件系统, 就是创建各种目录, 并且在里面创建各种文件. 比如在/bin ./sbin 目录下存放各种可执行程序, 在/etc 目录下存放配置文件, 在/lib 目录下存放库文件 ...

  9. asp.net面试题总结1(未完待续。。。。)

    1.MVC中的TempData\ViewBag\ViewData区别? 答:页面对象传值,有这三种对象可以传. Temp:临时的 Bag:袋子 (1)  TempData  保存在Session中,C ...

随机推荐

  1. React入门--------组件的生命周期

    Mounting/组件挂载相关: componentWillMount componentDidMount Updating/组件更新相关: componentWillReceiveProps sho ...

  2. angular源码分析:angular中jqLite的实现——你可以丢掉jQuery了

    一.从function JQLite(element)函数开始. function JQLite(element) { if (element instanceof JQLite) { //情况1 r ...

  3. CVE: 2014-6271、CVE: 2014-7169 Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis

    目录 . 漏洞的起因 . 漏洞原理分析 . 漏洞的影响范围 . 漏洞的利用场景 . 漏洞的POC.测试方法 . 漏洞的修复Patch情况 . 如何避免此类漏洞继续出现 1. 漏洞的起因 为了理解这个漏 ...

  4. SharePoint 2010 网站备份还原简单介绍

    今天尝试了SharePoint2010网站的备份和还原,从网上搜一些文档看看,然后自己试试,感觉和2007的操作没什么太大的区别,跟大家分享下自己尝试的命令行方式和数据库的方式,2007自己常用的也是 ...

  5. 浅谈TabLayout(ViewPager+Tab联动)

    google发布了的Android Support Design库中提供了TabLayout 通过TabLayout+ViewPager实现导航栏效果,点击Tab ,ViewPager跟随变化,滑动V ...

  6. IDEA中,将文件夹加入classpath

    加载文件时遇到某些文件加载不到,可能是因为该文件不在classpath中. 加入方法: 1.File - Project Structure 2.如图 modules - 选择需要加入的文件夹, 点击 ...

  7. js confirm函数 删除提示

    <a href="del.php" onclick="return confirm('是否将此留言信息删除?')">删除留言</a>

  8. linux常用命名复习

    ubuntu sysv-rc-conf 用来管理自启动项   centos  chkconfig 1. ls命令ls命令是列出目录内容(List Directory Contents)的意思.运行它就 ...

  9. 使用xmarks同步 chrome ie firefox safari书签

    xmarks是什么? Install Xmarks on each computer you use, and it seamlessly integrates with your web brows ...

  10. Comparable接口与Comparator接口的区别

    1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Pe ...