A 约数之和

(count.pas/c/cpp)
TL:1S ML:128MB
【Description】
我们用 D(x)表示正整数 x 的约数的个数。给定一个正整数 N,求 D(1)+D(2)+…+D(N)。
【Input】
一行一个正整数 N。
【Output】
一行一个整数,表示答案
【Sample Input】
5
【Sample Output】
10
【Hint】
样例解释:
D(1)=1 D(2)=2
D(3)=2 D(4)=3 D(5)=2
对于 20%的测试数据:N<=1000
对于 50%的测试数据:N<=100000
对于 100%的测试数据:N<=10000000

#include<iostream>
#include<cstdio>
using namespace std;
int n;
long long ans;
int main(){
freopen("count.in","r",stdin);
freopen("count.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)ans+=n/i;
cout<<ans;
fclose(stdin);fclose(stdout);
return ;
}

100分 数论

B 邮局选址

(post.pas/c/cpp)
TL:1S ML:128MB
【Description】
在 J 市的一条笔直的公路旁分布着 n 个村庄,每个村庄都有一个唯一的坐标 Xi,任意一
对村庄的坐标不同。最近,J 市领导计划在村庄里新建 m 个邮局,而邮局在 n 个村庄里
的分布情况会影响到居民的便利程度。
设 m 个邮局分别建在 P1,P2,..,Pm 号村庄。每个村庄的村民都会找到与其距离最近的一
个邮局, 若有多个距离最近的则会任选一个, 该村庄的便利度即为该村庄与其最近的邮局的
距离,而所有村庄的便利度的和即为总便利度。
严格地讲,总便利度 C 定义为
∑min⁡ {|?? − ???|⁡(1 ≤ ? ≤ ?)}
?
?=1
现在,由你来安排邮局的建设位置。请计算最小的 C 是多少。
【Input】
第一行两个整数 n m
第二行递增的 n 个整数,表示 X1..Xn
【Output】
一行一个整数,表示最小的 C
【Sample Input】
10 5
1 2 3 6 7 9 11 22 44 50
【Sample Output】
9
【Hint】
样例解释:建立在坐标为:2 7 22 44 50 的位置
每个村庄的便利度分别为:1 0 1 1 0 2 4 0 0 0
对于 30%的测试数据 n ≤ 10
对于 60%的测试数据 n ≤ 50
对于 100%的测试数据 1 ≤ n ≤ 300; 1 ≤ m ≤ 30; m ≤ n; 1 ≤ Xi ≤ 10000

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
using namespace std;
#define maxn 310
int n,m,p[maxn],a[maxn],ans=0x7fffffff;
int qread(){
int i=;
char ch=getchar();
while(ch<''||ch>'')ch=getchar();
while(ch<=''&&ch>=''){i=i*+ch-'';ch=getchar();}
return i;
}
void dfs(int pos,int cnt,int pre,int sum){
if(sum>=ans)return;
if(m-cnt>n+-pos)return;
int now=sum;
if(cnt==m){
for(int i=pos;i<=n;i++){
now+=abs(p[i]-p[pos-]);
}
ans=min(ans,now);
return;
}
if(pos==n+)return;
dfs(pos+,cnt,pre,sum);
if(pre!=-){
for(int i=pre+;i<=pos-;i++){//pos处为邮局
now+=min(abs(p[i]-p[pos]),abs(p[i]-p[pre]));
}
dfs(pos+,cnt+,pos,now);
return;
}
for(int i=;i<=pos-;i++){
now+=p[pos]-p[i];
}
dfs(pos+,cnt+,pos,now);
}
int main(){
//freopen("Cola.txt","r",stdin);
freopen("post.in","r",stdin);
freopen("post.out","w",stdout);
n=qread();m=qread();
for(int i=;i<=n;i++)p[i]=qread();
dfs(,,-,);
printf("%d",ans);
}

40分 暴力+可行剪枝+最优剪枝

/*
f[i][j]表示前i个位置用了j个邮局的最小代价,可以发现当前状态只与上一个邮局的位置有关,即满足无后效性
我们可以把一个邮局所管辖的范围当成一个区间
枚举当前要安置的邮局的区间起点
对于这个区间,我们发现需要处理区间中每个村庄的总花费,这个可以预处理出来
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
#define maxn 1010
int n,m,f[maxn][maxn],cost[maxn][maxn],p[maxn];
int main(){
freopen("post.in","r",stdin);
freopen("post.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%d",&p[i]);
for(int i=;i<=n;i++)
for(int j=i;j<=n;j++){
int k=(i+j)>>;
cost[i][j]=;
for(int t=i;t<=j;t++)
cost[i][j]+=abs(p[k]-p[t]);
}
memset(f,/,sizeof(f));f[][]=;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
for(int k=;k<=i-;k++)
f[i][j]=min(f[i][j],f[k][j-]+cost[k+][i]);
printf("%d",f[n][m]);
}

100分 动态规划

C 分数

(fraction.pas/c/cpp)
TL:2S ML:128MB
【Description】
在一门叫做计算机应用数学的神奇的课上,老师教给大家如何处理小数的进制转换:
p 进制的小数 abc.def 的十进制值为: ? ∗ ? 2 + ? ∗ ? + ? +
?
?
+
?
? 2
+
?
? 3 。
例如十进制数 1
3 在十进制下小数表示为 0.33333…, 在三进制下为 0.1, 在三十进制下为 0.A。
(这里 A 的含义与十六进制中 A 的含义相同,均表示 10) 。
下课后,老师要求 kAc 将 N 个十进制的分数写成 k 进制下的小数。然而 kAc 发现,很多十
进制分数根本不可能写成有限的 k 进制小数!这令他十分不爽,不过他想知道,最小需要几
进制才能使得这些十进制分数在该进制下均为有限的小数。
【Input】
第一行两个整数 N
接下来 N 行,每行两个整数 a, b,表示一个十进制小数 a
b 。
【Output】
一个整数,表示最小进制数。这里,请按照十六进制输出,所有字母全部大写。 (例如,如
果答案为十进制下 26,则输出 1A) 。
【Sample Input】
2
3 99
1 99
1 11
【Sample Output】
21
【Hint】
样例解释:
在 33 进制下,
3
99 可以表示为 0.1,
1
99 可以表示为 0.0B,
1
11 可以表示为 0.3。
可以证明不存在更小的进制,使得他们均为有限小数。
对于 20%的测试数据:n=1
对于 50%的测试数据: n<=10, a, b <= 10000, 保证最终答案在十进制下不超过 10000。
对于 70%的测试数据:n<=100,a, b<= 10000。
对于 100%的测试数据:n<=1000,1 <= a,b <= 1000000000。

2017-9-20 NOIP模拟赛的更多相关文章

  1. 2017 10.25 NOIP模拟赛

    期望得分:100+40+100=240 实际得分:50+40+20=110 T1 start取了min没有用,w(゚Д゚)w    O(≧口≦)O T3 代码3个bug :数组开小了,一个细节没注意, ...

  2. 2017.5.27 NOIP模拟赛(hzwer2014-5-16 NOIP模拟赛)

    期望得分:100+100+60+30=290 实际得分:100+20+60+0=180 当务之急:提高一次正确率 Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一 ...

  3. 2017.6.11 NOIP模拟赛

    题目链接: http://files.cnblogs.com/files/TheRoadToTheGold/2017-6.11NOIP%E6%A8%A1%E6%8B%9F%E8%B5%9B.zip 期 ...

  4. 【2019.8.20 NOIP模拟赛 T3】小X的图(history)(可持久化并查集)

    可持久化并查集 显然是可持久化并查集裸题吧... 就是题面长得有点恶心,被闪指导狂喷. 对于\(K\)操作,直接\(O(1)\)赋值修改. 对于\(R\)操作,并查集上直接连边. 对于\(T\)操作, ...

  5. 【2019.7.20 NOIP模拟赛 T1】A(A)(暴搜)

    打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后 ...

  6. 2018/3/20 noip模拟赛 5分

    T1 傻逼题,写了cmp没sort,5分. T2 树上差分,写了树剖线段树,超时,0分. T3 树归,0分. 我是个zz

  7. 【2019.8.20 NOIP模拟赛 T2】小B的树(tree)(树形DP)

    树形\(DP\) 考虑设\(f_{i,j,k}\)表示在\(i\)的子树内,从\(i\)向下的最长链长度为\(j\),\(i\)子树内直径长度为\(k\)的概率. 然后我们就能发现这个东西直接转移是几 ...

  8. 【2019.7.20 NOIP模拟赛 T2】B(B)(数位DP)

    数位\(DP\) 首先考虑二进制数\(G(i)\)的一些性质: \(G(i)\)不可能有连续两位第\(x\)位和第\(x+1\)位都是\(1\).因为这样就可以进位到第\(x+2\)位.其余情况下,这 ...

  9. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

  10. CH Round #49 - Streaming #4 (NOIP模拟赛Day2)

    A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...

随机推荐

  1. 利用iOS原生系统进行人脸识别+自定义滤镜(GPUImage)

    人脸识别+滤镜效果(基于GPUImage实现的自定义滤镜) 最近碰到一个好玩的需求.说要客户端这边判定一下是否有人脸.在有的基础上.对相片做进一步的美化滤镜处理. 首先是人脸的识别判定; //将图片对 ...

  2. Automator 实例:使用快捷键 实现 快速在当前路径 打开 iTerm

    1. 在 finder -> 应用程序 或 通过 Spotlight 打开:Automator.app 2. 选择新建 “服务” 3. 设置服务,见下图,设置完成之后,command + s 保 ...

  3. spring-boot-starter-parent

    在官方文档的第三部分的13块讲述了引用的管理,官方推荐的是使用Maven和Gradle. 我一直在用的是maven,而且使用maven有些优势–spring-boot-starter-parent,这 ...

  4. 畅游HttpCore

    欢迎 非常欢迎阅读本文,本文主要介绍HttpCore是如何工作的. 你应该知道HTTP是一种用于在客户端与服务端进行消息交换的协议.它使用的特别广泛,它通常运行在TCP/IP或者安全的TLS/SSL之 ...

  5. Javascript类型转换的规则实例解析

    http://www.jb51.net/article/79916.htm 类型转换可以分为隐式转换和显式转换,所谓隐式转换即程序在运行时进行的自动转换,显式转换则是人为的对类型进行强制转换.Java ...

  6. ES6 Set数据结构

    Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. const s = new Set(); // const声明一个只读的常量.一旦声明,常量的值就不能 ...

  7. matlab之sortrows()函数

    sortrows()函数的格式: sortrows(A,column) A是一个矩阵,如果没有第二个参数column,则默认按照第一列升序排列,如果遇到重复数字,则按照第二列升序排列,依次类推... ...

  8. 简单的可兼容所有浏览器的操作html元素的javascript框架

    1.根据id名称取元素  $id(idName) 2.根据class定义取元素  $class(className)返回所有class被定义成className的元素数组,或者$Eclass(clas ...

  9. 日期时间选择器bootstrap-datetimepicker表单组件

    Bootstrap受到很多人的喜欢,它不仅拥有一套完整漂亮的UI,而且爱好者们为其开发扩展了很多有用的插件和主题!让其拥有无限可能! 今天为开发者推荐一款强大,易用的时间日历插件——bootstrap ...

  10. 关于JDK安装javac失效的几个问题。

    1.按照指南一步一步配置环境变量. 打开cmd,测试. 2.如果还是没有用,注意你的JAVA_HOME配置的是用户变量还是系统变量,改成系统变量. 打开cmd,测试. 3.如果还是没有用,不要你的JA ...