找礼物[find.pas/find.c/find.cpp]

【问题描述】

新年到了,突然间,就在那美丽的一霎那,你好友和你(K个人)的周围满是礼物,你发扬你帅气的风格,让你的好友先拿,但是每个人只能拿当前离自己最近的礼物[当然如果有并列的多个礼物离你的距离相等(精确到小数后四位,所有运算均为去尾),这些礼物就都属于这个人]。现在你们所在的位置是原点(0,0),每个礼物的位置用坐标表示。现在告诉你每个礼物的坐标,还有每个礼物是谁送的。要你找出你的礼物离你多远,你能拿到多少礼物,这些礼物是谁送的。如果你拿不到礼物,请输出“555…”

【输入】

第一行:N 和 K 分别表示礼物的个数和人数。

第二到N+1行:每行先是赠送礼品人的姓名,然后是礼物的坐标(x,y)。

数据间空格分割

【输出】

第一行: D 和 U 表示礼物距你多远(只要去尾后的整数)和你能拿到多少礼物。

第二到U+1行:每行一个人名,表示送礼的人。<按照输入的顺序输出>

【输入输出样例】

样例1:

输入(find.in):

5 2

Jason 1 1

Herry 4 4

Patty 3 4

Tom 2 10

Petter 5 10

输出(find.out):

5 1

Patty

样例2:

输入(find.in):

6 2

Jim 1 –1

Flord 3 –3

Joseph –1 1

Steve 3 3

Tiger 2 –10

User 10 20

输出(find.out):

4 2

Flord

Steve

样例二说明:jim 和 joseph 的礼品是等距的距离最短,被第一个人拿走,剩下的四个人中flord和steve的礼物也是等距的计算得到距离为4。

【数据范围】

对于30%的数据 K≤N≤1000

对于所有的数据 K≤N≤100000

所有的坐标绝对值小于106         

Solution

傻逼题,计算所有的dis,随便排个序,然后扫描一遍,输出答案

Code

No Code

没有



 打包[pack.pas/pack.c/pack.cpp]

【问题描述】

你现在拿到了许多的礼物,你要把这些礼物放进袋子里。你只有一个最多装下V 体积物品的袋子,你不能全部放进去。你也拿不动那么重的东西。你估计你能拿的最大重量为 G。现在你了解了每一个物品的完美值、重量和体积,你当然想让袋子中装的物品的完美值总和最大,你又得计划一下了。

【输入】

第一行:V 和 G 表示最大重量和体积。

第二行:N 表示拿到 N 件礼物。

第三到N+2行:每行3个数 Ti Vi Gi 表示各礼物的完美值、重量和体积

【输出】

输出共一个数,表示可能获得的最大完美值。

【输入输出样例】

输入(pack.in):

6 5

4

10 2 2

20 3 2

40 4 3

30 3 3

输出(pack.out):

50

【数据范围】

对于20%的数据 N,V,G,Ti,Vi,Gi≤10

对于50%的数据 N,V,G,Ti,Vi,Gi≤100

对于80%的数据 N,V,G,Ti,Vi,Gi≤300

80%到100%的数据是N,V,G,Ti,Vi,Gi≤380 的离散随机数据。

Solution

傻逼题,简直就是01背包,随便多个限制随便搞搞就出来了

Code

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int V,G,N,t[],v[],g[],f[][],ans;
int main()
{
scanf("%d%d%d",&V,&G,&N);
for (int i=;i<=N;i++) scanf("%d%d%d",&t[i],&v[i],&g[i]);
memset(f,,sizeof(f));
f[][]=;
for (int i=; i<=N; i++)
for (int j=V; j>=v[i]; j--)
for (int k=G; k>=g[i]; k--)
f[j][k]=max(f[j][k],f[j-v[i]][k-g[i]]+t[i]);
for (int i=;i<=V;i++)
for (int j=;j<=G;j++)
ans=max(ans,f[i][j]);
printf("%d\n",ans);
return ;
}

感觉这么傻逼,完全不想放



Mason数(Mason.pas)

【问题描述】形如2P-1的素数称为Mason数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2P-1不一定也是素数。到1998年底,人们已找到了37个Mason数。最大的一个是P=3021377,它有909526位。Mason数有许多重要应用,它与完全数密切相关。

任务:从文件中输入P(1000<P<3100000),计算2P-1的位数和最后500位数字(用十进制高精度数表示)

【输入格式】

文件中只包含一个整数P(1000<P<3100000)

【输出格式】

第一行:十进制高精度数2P-1的位数。

第2-11行:十进制高精度数2P-1的最后500位数字。(每行输出50位,共输出10行,不足500位时高位补0)

不必验证2P-1与P是否为素数。

【输入样例】

1279

【输出样例】

386

00000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000

00000000000000104079321946643990819252403273640855

38615262247266704805319112350403608059673360298012

23944173232418484242161395428100779138356624832346

49081399066056773207629241295093892203457731833496

61583550472959420547689811211693677147548478866962

50138443826029173234888531116082853841658502825560

46662248318909188018470682222031405210266984354887

32958028878050869736186900714720710555703168729087

Solution

一脸普及组难度,没错,就是原题!!!

快速幂+高精乘随便A,时间复杂度$O(500^{2}logP)$

ORZ   DCrusher大爷写分治高精乘

Code

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
void Freopen() {freopen("mason.in","r",stdin); freopen("mason.out","w",stdout);}
void Fclose() {fclose(stdin); fclose(stdout);}
int P;
struct big{int a[]; big() {memset(a,,sizeof(a));}};
big mul(big a,big b)
{
big c;
for (int i=; i<=; i++)
for (int j=; j<=; j++)
c.a[i+j-]+=a.a[i]*b.a[j];
for (int i=; i<=; i++)
c.a[i+]+=(c.a[i]/),c.a[i]%=;
return c;
}
big Pow(big x,int y)
{
big re; re.a[]=;
for (int i=y; i; i>>=,x=mul(x,x))
if (i&) re=mul(re,x);
return re;
}
int main()
{
Freopen();
scanf("%d",&P);
int len=(log()/log()*P)+;
printf("%d\n",len);
big now; now.a[]=;
big ans=Pow(now,P);
ans.a[]--;
int cnt=;
for (int i=; i>=; i--)
{
printf("%d",ans.a[i]); cnt++;
if (cnt%==) puts("");
}
Fclose();
return ;
}

愚蠢的代码



解密 (Cryptcowgraphy)

农民Brown和John的牛们计划协同逃出它们各自的农场。它们设计了一种加密方法用来保护它们的通讯不被他人知道。

如果一头牛有信息要加密,比如"International Olympiad in Informatics",它会随机地把C,O,W三个字母插到到信息中(其中C在O前面,O在W前面),然后它把C与O之间的文字和 O与W之间的文字的位置换过来。这里是两个例子:

            International Olympiad in Informatics
                              -> 
            CnOIWternational Olympiad in Informatics
            
            International Olympiad in Informatics
                              -> 
            International Cin InformaticsOOlympiad W

为了使解密更复杂,牛们会在一条消息里多次采用这个加密方法(把上次加密的结果再进行加密)。一天夜里,John的牛们收到了一条经过多次加密的信息。请你写一个程序判断它是不是这条信息经过加密(或没有加密)而得到的:

            Begin the Escape execution at the Break of Dawn

程序名字: cryptcow

输入格式

一行,不超过75个字符的加密过的信息。

范例输入(文件cryptcow.in)

Begin the EscCution at the BreOape execWak of Dawn

输出格式

一行,两个整数. 如果能解密成上面那条逃跑的信息,第一个整数应当为1,否则为0;如果第一个数为1,则第二个数表示此信息被加密的次数,否则第二个数为0。

范例输出(文件cryptcow.out)

1 1

Solution

纯暴搜

说一下减枝

首先cn==wn==on。  用Hash去判调冗余状态。 被COW卡住的是原串中的最小单位,所以判断这个部分是否出现,就可以判断这个状态是否合法

正解是bfs...反正dfs+剪枝也能过

顺带说一句,直接输出0 0有40,直接输出1 cn有60

Code

No Code

没有



启发:

首先精度要注意好,理解去尾的特殊性,不同于平常的判断

排序结构体时,结构体里不要有数组,因为交换时并不是交换指针而是一个一个交换,效率非常慢!!

搜索要多加减枝,要多考虑特殊的答案,尽可能多得分

那种辛苦爆搜就因为少一个减枝,被直接输出的裸骗分碾的感觉真TMD不爽!!!!

一次愚蠢的NOIP模拟赛的更多相关文章

  1. 一次更愚蠢的NOIP模拟赛

    都可以从COGS上找到 纵横字谜(krizaljka) 时间限制: 1 Sec  内存限制: 32 MB 题目描述 给出两个单词,找到第一个相同的字母,然后第一个单词横数输出,第二个竖着输出形成十字形 ...

  2. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  3. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  4. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  5. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  6. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  7. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  8. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  9. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

随机推荐

  1. C# where用法

    where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量. 1.接口约束. 例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 ICompa ...

  2. TinyFrame升级之九:实现复杂的查询

    本章我们主要讲解如何实现一个复杂的查询.由于目前TinyFrame框架已经投入到了实际的项目生产中,所以我很乐意将项目中遇到的任何问题做以记录并备忘. 这章中,我们提到的查询界面如下所示: 其中,涉及 ...

  3. centos7下使用yum安装mysql数据库以及设置远程访问

    CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 $ wget http://repo.mysql.com ...

  4. 【Alpha版本】十天冲刺集结令

    031402304 陈燊 031402342 许玲玲 031402337 胡心颖 03140241 王婷婷 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬涛 [Alp ...

  5. 一次由于开启 Safari 无痕浏览 引发的艰难“捉虫”事件

    事件回顾 做了一个移动端的页面,测试的时候出现了一个诡异的 bug.别的浏览器都好好的,就 ios 的 Safari 浏览器页面停止了渲染,似乎是有一段 js 文件没有载入.但是奇怪的是,同一型号的 ...

  6. Android开发遇到的坑(1):Java中List的安全删除问题

    在项目的开发过程中,一定少不了的是对Java集合中的List接触.项目中对List的删掉也是一种常见的操作,看上这个操作也没什么好说的样子,但是在项目开发中也是最容易出错的地方,特别是对于新手.有时候 ...

  7. 为Visual Studio更换皮肤和背景图

    最近在博客上别人在老早之前就有加了背景图,想想怎么能这么out,于是乎,百度一下,能否知道? 咳咳,资源还是有滴!可惜都是比较旧的跟新版本的配置方法可能有点不一样, 可能会有很多人会觉得不适应,不过没 ...

  8. ServiceStack 概念参考文摘

    摘自:http://www.cnblogs.com/woxpp/p/5010881.html ServiceStack 用于服务开发,可以为各种形式的网站.软件.APP等提供数据服务,可以提供REST ...

  9. KM模板

    var n,m,i,j:longint; ans:int64; sel,lx,ly,slack:..] of int64; a:..,..] of int64; visx,visy:..] of bo ...

  10. Hibernate 的dialect 大全

    RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS3 ...