在 2047 年,第 64 届全国青少年信息学奥林匹克冬令营前夕,B君找到了 2015 年,第 32 届冬令营的题目来练习。

他打开了第三题 “未来程序” 这道题目:

  • 本题是一道提交答案题,一共 10 个测试点。

    对于每个测试点,你会得到一段程序的源代码和这段程序的输入。你要运行这个程序,并保存这个程序的输出。

    遗憾的是这些程序都效率极其地下,无法在比赛的 5 个小时内得到输出。

B君想了一下,决定用 2047 年的计算机来试着运行这个题目,他找到了 2015 年的编译器,并很快得到了结果……

这时B君从梦中惊醒,发现自己居然在第 32 届冬令营赛场上。之前的一切只是南柯一梦,而自己正需要解决“未来程序”这道题目。

然而B君已经记不清梦中的程序运行的结果了,他试图再次运行这些程序。但是他发现计算机性能比梦里的差多了,程序确实都无法在 55 小时内得到结果。

他需要你的帮助,来得到那些梦中的结果。

本题是一道提交答案题,一共有 10 个测试点。

对于每个测试点,你会得到一段程序的源代码和这段程序的输入。你要运行这个程序,并保存这个程序的输出。

遗憾的是这些程序效率都极其低下,无法在比赛的 5 小时内得到输出。

你需要帮助B君得到这些程序的输出。

输入格式

本题一共有 10 个测试点,编号为 1~10。以下用 “*” 表示测试点编号。

对于每个测试点有 4 个文件,分别是 program*.cpp 文件,program*.c 文件,program*.pas 文件,program*.in 文件。

你需要用自己的方法,得到以 program*.in 作为输入,编译运行 program*.{cpp, c, pas} 的输出。

你只需要在 3 种语言的代码中选择 1 种来解这道题目。这 3 种语言的代码在语意上是类似的,运行结果是相同的。

输出格式

对于给出的 10 个测试点,你需要将程序的输出分别保存在 program*.out 中。

特别地,我们保证每个测试点一定会输出恰好 10 行。

评分方法

每个测试点单独评分。

如果你的一个输出文件超过了 4KB,或某一行超过了 400 个字符,该测试点得 0 分。

否则对于每行单独评分,如果该行与标准答案相同,可以得 1 分。

如果你的输出不足 10 行,我们会在你的输出末尾添加空行补齐 10 行。

如果你的输出超过 10 行,我们会取出你的前 10 行作为输出。

样例

请下载输入数据。样例输入见 example.{in,cpp,c,pas},样例输出见 example.ans。

恶心提答题。。真的无语。

program1:容易看出求a*b%p,要高精度,python即可。

program1.out:

program2:经过一次转移,a=a+2b+c,b=a+b,c=a,那么我们可以构造3*3的矩阵,直接矩阵快速幂即可。

 //It is made by wfj_2048~
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#define inf (1<<30)
#define il inline
#define RG register
#define ll long long
#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout) using namespace std; struct data{ ll a[][]; }ans,c; ll n,p; il ll gi(){
RG ll x=,q=; RG char ch=getchar(); while ((ch<'' || ch>'') && ch!='-') ch=getchar();
if (ch=='-') q=-,ch=getchar(); while (ch>='' && ch<='') x=x*+ch-,ch=getchar(); return q*x;
} il data mul(RG data a,RG data b,RG ll p){
RG data c; memset(c.a,,sizeof(c.a));
for (RG ll i=;i<=;++i)
for (RG ll j=;j<=;++j)
for (RG ll k=;k<=;++k){
c.a[i][j]+=a.a[i][k]*b.a[k][j]%p;
c.a[i][j]%=p;
}
return c;
} il data qpow(RG data a,RG ll b,RG ll p){
RG data c=a; b--;
while (b){
if (b&) c=mul(c,a,p);
a=mul(a,a,p),b>>=;
}
return c;
} il void work(RG ll n,RG ll p){
memset(ans.a,,sizeof(ans.a)),memset(c.a,,sizeof(c.a));
ans.a[][]=,c.a[][]=c.a[][]=c.a[][]=c.a[][]=c.a[][]=,c.a[][]=;
RG data b=qpow(c,n,p); ans=mul(ans,b,p);
printf("%lld\n",(ans.a[][]-*ans.a[][]+ans.a[][]+*p)%p); return;
} int main(){
File("program2");
for (RG int i=;i<=;++i){
n=gi(),p=gi();
work(n,p);
}
return ;
} program2.out:

program3:幂和公式,然而我只会前6个点,不过6分挺好的。。(我的程序求4次方是WA的,我也不知道为什么。。)

 //It is made by wfj_2048~
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#define inf (1<<30)
#define il inline
#define RG register
#define ll unsigned long long
#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout) using namespace std; ll n,s0,s1,s2,s3,s4; il int gi(){
RG int x=,q=; RG char ch=getchar(); while ((ch<'' || ch>'') && ch!='-') ch=getchar();
if (ch=='-') q=-,ch=getchar(); while (ch>='' && ch<='') x=x*+ch-,ch=getchar(); return q*x;
} il void work(){
scanf("%llu",&n);
s0=n+;
s1=(+n)*n/;
s2=n*(n+)*(*n+)/;
s3=n*(n+)/*n*(n+)/;
s4=(*n*n*n*n*n+*n*n*n*n+*n*n*n-n)/;
printf("%llu\n%llu\n%llu\n%llu\n%llu\n%llu\n%llu\n%llu\n%llu\n%llu\n",s0,s0,s1,s1,s2,s2,s3,s3,s4,s4);
return;
} int main(){
File("program3");
work();
return ;
} program3.out:

program9:破译密码。。不会搞,只能根据提示xjb猜。。

program9.out:

chenlijie
$_$
we
hold
these
truths
to be
selfevident

其他的还没做,到时候再玩吧。。

uoj#73 【WC2015】未来程序的更多相关文章

  1. 【洛谷4920】[WC2015] 未来程序(提答题)

    点此看题面 大致题意: 把\(10\)个点的暴力代码和输入数据都给你,让你求出输出数据. 子任务\(1\) 第一个子任务自然是拿来送分用的... 容易发现就是一个快速乘的过程啊. 代码如下: #inc ...

  2. [WC2015]未来程序(提交答案)

    sub1:ans=a*b%c,龟速乘即可. #include <stdio.h> #include <stdlib.h> unsigned long long a, b, c, ...

  3. Uoj 73 未来程序

    Uoj 73 未来程序 神仙提答. Subtask 1 仔细阅读,发现是要计算 \(a*b\ \%\ c\).用龟速乘或者 \(python\) 直接算. Subtask 2 仔细阅读并手算一下,发现 ...

  4. 如何A掉未来程序改

    话说有这样一道神题:[集训队互测2015]未来程序·改. 大意是要求写一个简单的C++解释器!这里去掉了C++的许多特性,连简单的break和continue都没有了! 话说NOI被屠了之后,一时心血 ...

  5. [UOJ#127][BZOJ4195][NOI2015]程序自动分析

    [UOJ#127][BZOJ4195][NOI2015]程序自动分析 试题描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2, ...

  6. UOJ#73. 【WC2015】未来程序 提交答案题

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ73.html 前言 纯属理性愉悦. 题解 Subtask1 发现就是求 $a \times b \mod c $ . 写个 ...

  7. UOJ73 【WC2015】未来程序

    题目描述:给出输入和暴力程序,求输出.共10个测试点. 测试点1: 输入\(a,b,c\),求\(a\times b \ \mathrm{mod} \ c\) \(a,b,c\)属于long long ...

  8. uoj98未来程序改 纯暴力不要想了

    暴力模拟A了,数据还是良(shui)心(shui)的 90分的地方卡了半天最后发现一个局部变量被我手抖写到全局去了,,, 心碎*∞ 没什么好解释的,其实只要写完表达式求值(带函数和变量的),然后处理一 ...

  9. bzoj4020: 未来程序·改

    只需写一个解释器 第一次预处理将输入进行分词,分割出 关键字,运算符,变量/函数名,整数常量,并对变量/函数名离散化以便处理 第二次预处理建语法树,每个节点存节点类型,变量定义表等信息 运行时在语法树 ...

随机推荐

  1. ReactJS React+Redux+Router+antDesign通用高效率开发模板,夜间模式为例

    工作比较忙,一直没有时间总结下最近学习的一些东西,为了方便前端开发,我使用React+Redux+Router+antDesign总结了一个通用的模板,这个技术栈在前端开发者中是非常常见的. 总的来说 ...

  2. Jmeter接口压力测试

    SOAP百科:Soap简单对象访问协议,是交换数据的一种协议规范,是一种轻量的.简单的.基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息.webServi ...

  3. Servlet+jsp的分页案例

    查询的分页,在web中经常用到.一般,分页要维护的信息很多,我们把这些相关的信息,分装到一个类中,PageBean.具体如下: package cn.itcast.utils; import java ...

  4. 关于Trie KMP AC自动机

    个人认为trie,KMP,AC自动机是思想非常明确的,AC自动机的性质是与KMP算法的思想类似的(失配后跳转) 而KMP是线性的,AC自动机是在tire树上跑KMP,为方便那些不会用指针的小朋友(我也 ...

  5. rem 结合 scss 移动端自适应 初级入门demo

    首先说明 本篇 内容 适合初级使用 rem 开发移动端 自适应 公式计算 推导过程, 高手绕路. 目标尺寸 = rem  *  根字体大小 Px   =  rem * (html根字体px) 根字体大 ...

  6. JAVA源码剖析(容器篇)HashMap解析(JDK7)

    Map集合: HashMap底层结构示意图: HashMap是一个“链表散列”,其底层是一个数组,数组里面的每一项都是一条单链表. 数组和链表中每一项存的都是一“Entry对象”,该对象内部拥有key ...

  7. 急速搭建SuperMap iCloudManager for Docker环境

    大家好,SuperMap iCloudManager 是超图的 GIS 云管理系统,它是出色的云GIS平台的大管家. 它很简单,部署操作都很简单. 它很智能,可以实时监控 GIS 业务环境的 CPU ...

  8. RBAC打造通用WEB权限

    RBAC不用给用户单个分配权限,只用指向对应的角色就会有对应的权限,而且分配权限和收回权限都很方便 5个关系对应5张表 五张表设计 CREATE TABLE `user` ( `id` ) unsig ...

  9. 老李分享:jvm结构简介 2

    2.2.4 Program counter regsiters:程序计数器 类似于PC寄存器,是一块较小的内存区域,通过程序计数器中的值寻找要执行的指令的字节码,由于多线程间切换时要恢复每一个线程的当 ...

  10. grep的用法笔记

    1.grep搜索不保护字符串的命令格式如下: #带-v参数 jevan@df ~ grep "agc" -vRn ./