二分 题目 压缩打包 Special Judge? 不不不 当然不是

http://noi.openjudge.cn/ch0111/

No 题目 分数
01 查找最接近的元素 10 3176
02 二分法求函数的零点 10 2181
03 矩形分割 10 1420
04 网线主管 10 1648
05 10 1581
06 月度开销 10 1449
07 和为给定数 10 1906
08 不重复地输出数 10 1790
09 膨胀的木棍 10 768
10 河中跳房子 10 2027

------------------------------萌萌的分割线------------------------------

T1

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #define INF 0x3f3f3f3f
 7 using namespace std;
 8
 9 int a[100005],ans,flag,M,N;
10
11 int erfen(int x){
12     int l=1,r=N;
13     while(r-l>1){
14         int mid=l+(r-l)/2;
15         if(a[mid]>=x){
16             r=mid;
17         }
18         else{
19             l=mid;
20         }
21     }
22     int pos=0,cha=INF;
23     for(int i=l-2<1?1:l-2;i<=r+2;i++){
24         if(abs(a[i]-x)<cha){
25             pos=i;
26             cha=abs(a[i]-x);
27         }
28     }
29     return a[pos];
30 }
31
32 int main(){
33 //    freopen("01.in","r",stdin);
34
35     memset(a,0x3f,sizeof(a));
36     scanf("%d",&N);
37     for(int i=1;i<=N;i++){scanf("%d",&a[i]);}
38     scanf("%d",&M);
39     while(M--){
40         int x;scanf("%d",&x);
41         printf("%d\n",erfen(x));
42     }
43     fclose(stdin);fclose(stdout);return 0;
44 }

要恶心地多判断几次

T2

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #define INF 0x3f3f3f3f
 7 #define eps 1e-9
 8 using namespace std;
 9
10 int a[100005],N;
11
12 double cal(double x){
13     return x*x*x*x*x-15.0*x*x*x*x+85.0*x*x*x-225.0*x*x+274.0*x-121.0;
14 }
15
16 double erfen(double l,double r){
17     while(r-l>eps){
18         double mid=(l+r)/2.0;
19         if(cal(mid)>=0){
20             l=mid;
21         }
22         else {
23             r=mid;
24         }
25     }
26     return l;
27 }
28
29 int main(){
30 //    freopen("01.in","r",stdin);
31
32     printf("%.6f",erfen(1.5,2.4));
33
34     fclose(stdin);fclose(stdout);return 0;
35 }

l和r别弄反了

T3

T4

T5

T6

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #define INF 0x3f3f3f3f
 7 using namespace std;
 8
 9 int a[100005],M,N,kkk,mx;
10
11 int solve(){
12     int ans=0,flag=0;
13     for(int i=1;i<=N+1;i++){
14         int x=a[i];
15         if(flag+x>M) flag=x,++ans;
16         else flag+=x;
17     }
18     return ans;
19 }
20
21 void erfen(){
22     int cnt=0;
23     int ans=INF;
24     int l=mx,r=INF;
25     while(cnt++<100 && l!=r){
26         M=(l+r)/2;
27         int k=solve();
28         if(k>kkk){
29             l=M;
30         }
31         else{
32             r=M;
33         }
34         if(k<=kkk) ans=min(ans,M);
35 //        cout<<k<<" "<<l<<" "<<r<<endl;
36     }
37     cout<<ans;
38 }
39
40 int main(){
41 //    freopen("01.in","r",stdin);
42
43     memset(a,0x3f,sizeof(a));
44     scanf("%d%d",&N,&kkk);
45     for(int i=1;i<=N;i++){scanf("%d",&a[i]);mx=max(mx,a[i]);}
46
47     erfen();
48
49     fclose(stdin);fclose(stdout);return 0;
50 }

这件事告诉我们,一定要写随机数据

随机数据查错非常给力

T7

T8

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #define INF 0x3f3f3f3f
 7 using namespace std;
 8
 9 int a[100005],N;
10
11 int main(){
12 //    freopen("01.in","r",stdin);
13
14     scanf("%d",&N);
15     for(int i=1;i<=N;i++) scanf("%d",&a[i]);
16     sort(a+1,a+N+1);
17     for(int i=1;i<=N;i++){
18         if(a[i]!=a[i+1]) printf("%d ",a[i]);
19     }
20
21     fclose(stdin);fclose(stdout);return 0;
22 }

我选择偷懒,吐舌~

T9

T10

噜噜噜~

时间: 2024-11-06 22:51:53

二分 题目 压缩打包 Special Judge? 不不不 当然不是的相关文章

Special Judge Ⅱ

Problem Description Q:什么是 Special Judge,Special Judge 的题目有什么不同? A:一个题目可以接受多种正确答案,即有多组解的时候,题目就必须被 Special Judge.Special Judge 程序使用输入数据和一些其他信息来判答程序的输出,并将判答结果返回. NaYe 最近遇到了一个题,要求输出三个数,第三个数为前两个数的和,三个数都是素数,且前两个数小于 500000.他只需要输出任意一组符合要求的答案即认为是 Accepted.现在需

Linux压缩打包方法连载之三:bzip2, bzcat 命令

Linux压缩打包方法有多种,本文集中讲解了bzip2, bzcat 命令的使用.案例说明,例如# 与 gzip 同样的,都是在计算压缩比的参数,-9 最佳,-1 最快. AD: 我们遇见Linux压缩打包方法有很多种,以下讲解了Linux压缩打包方法中的bzip2, bzcat 命令的概念,本文举了多种范例供大家查看,相信大家看完后会有很多收获.... bzip2, bzcat 命令[[email protected] ~]# bzip2 [-cdz] 档名[[email protected]

C# 压缩打包文件下载

C# 压缩打包文件下载 public class MyNameTransfom : ICSharpCode.SharpZipLib.Core.INameTransform { #region INameTransform 成员 public string TransformDirectory(string name) { return null; } public string TransformFile(string name) { return Path.GetFileName(name);

mvn项目压缩打包

通常情况下,maven打包结果为jar或war包.如果需要一并打包配置文件等参数,通过resources配置指定需要打包的文件参数,如下示例: 1 <project> 2 ... 3 <!-- 定义环境 --> 4 <profiles> 5 <!-- 开发环境 --> 6 <profile> 7 <id>dev</id> 8 <properties> 9 <!-- 定义profileActive属性 --

【教程】如何正确的写一个Lemon/Cena的SPJ(special judge)

转自:http://www.cnblogs.com/chouti/p/5752819.html Special Judge:当正确的输出结果不唯一的时候需要的自定义校验器 首先有个框架 #include<fstream> ifstream fin,fout,fstd ofstream fscore,freport; double Judge(){ } int main(int argc,char *argv[]) { //put something to fstreams... //Judge

- 6.1 压缩打包介绍 - 6.2 gzip压缩工具 - 6.3 bzip2压缩工具 - 6.4 xz压缩工具

- 6.1 压缩打包介绍 - 6.2 gzip压缩工具 - 6.3 bzip2压缩工具 - 6.4 xz压缩工具 # 6.1 压缩打包介绍 ## 常见压缩文件 - Windows .rar .zip .7z - Linux .zip,.gz,.bz2,.xz, - .tar.gz,.tar.bz2,.taz.xz ## 6.2 gzip压缩工具 首先做一个准备工作,在/tmp/下创建一个d6z的目录,再用find命令查找/etc/目录下的带有字符conf的所有文件 把这些文件内容输出到 /tmp

Linux 常用的压缩打包命令行

LINUX 常用的压缩打包命令行: ==== 1.常用压缩命令: tar -zcvf xx.tar.gz xx 例子:tar -zcvf xx-20170614.sql.tar.gz xx-20170614.sql 2.解压缩 tar -zxvf xx.tar.gz 3.把打包压缩过的文件从服务器上下载到本地 scp [email protected]:/home/数据库名-20170614.sql.tar.gz E:/download/ 例子:scp [email protected]:/ho

linux的tar命令详情;linux多个文件压缩打包到一个压缩文件

tar命令 可以用来压缩打包单文件.多个文件.单个目录.多个目录. Linux打包命令_tar tar命令可以用来压缩打包单文件.多个文件.单个目录.多个目录. 常用格式: 单个文件压缩打包 tar czvf my.tar.gz file1 多个文件压缩打包 tar czvf my.tar.gz file1 file2,...(file*)(也可以给file*文件mv 目录在压缩) 单个目录压缩打包 tar czvf my.tar.gz dir1 多个目录压缩打包 tar czvf my.tar

r.js压缩打包(require + backbone)项目开发文件

最近项目稳定了一点,之前一直没空关注的开发文件压缩打包问题也有时间来解决了 AMD模块化开发中的代码压缩打包工具——r.js 环境搭建基于nodejs:用于AMD模块化开发中的项目文件压缩打包,不是AMD模式也是可以的 javascript部分 压缩javascript项目开发文件夹 build.js压缩打包配置文件,文件名可随意 ({ appDir : './', //基于build,根目录 baseUrl : './project', //基于appDir,项目目录 dir : './pro