首页 > 其他分享 >暑期培训 Day 12 <做不完的题QWQ>

暑期培训 Day 12 <做不完的题QWQ>

时间:2023-07-31 21:00:48浏览次数:32  
标签:10 12 输出 18 样例 暑期 times leq Day

今天来做做csp-j 2022的题!!!

怎么说呢,虽然说 csp-j 一般是初中生去考,但是对于我这种弱市弱校的超级蒟蒻,还是可以去看看的(because csp-s 的题的难度都是普及+和提高,太难了QWQ,呜呜)

- [1] [CSP-j 2022] 乘方

题目描述

小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 \(a\) 和 \(b\),求 \(a^b\) 的值是多少。
\(a^b\) 即 \(b\) 个 \(a\) 相乘的值,例如 \(2^3\) 即为 \(3\) 个 \(2\) 相乘,结果为 \(2 \times 2 \times 2 = 8\)。
“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。
小文很快意识到,她的程序里的变量都是 int 类型的。在大多数机器上,int 类型能表示的最大数为 \(2^{31} - 1\),因此只要计算结果超过这个数,她的程序就会出现错误。
由于小文刚刚学会编程,她担心使用 int 计算会出现问题。因此她希望你在 \(a^b\) 的值超过 \({10}^9\) 时,输出一个 -1 进行警示,否则就输出正确的 \(a^b\) 的值。
然而小文还是不知道怎么实现这份程序,因此她想请你帮忙。

输入格式

输入共一行,两个正整数 \(a, b\)。

输出格式

**输出共一行,如果 \(a^b\) 的值不超过 \({10}^9\),则输出 \(a^b\) 的值,否则输出 -1。

样例 #1

样例输入 #1

10 9

样例输出 #1

1000000000

样例 #2

样例输入 #2

23333 66666

样例输出 #2

-1

提示

对于 10 %的数据,保证 b = 1。
对于 30 % 的数据,保证 \(b \le 2\)。
对于 60 % 的数据,保证 \(b \le 30\),\(a^b \le {10}^{18}\)。
对于 100 % 的数据,保证 \(1 \le a, b \le {10}^9\)。
\(\text{upd 2022.11.14}\):新增加一组 \(\text{Hack}\) 数据。

一看就知道是签到题QWQ,还是very简单的

我直接一手快速幂,然后听取wa声一片,我就晓得有个奇怪的bug点没有考虑到(我***)!!!

罢了罢了,看看题解吧。

然后想着想着发现其实暴力也可以,什么题解啊,没意思,我直接暴力,时间还比你快QWQ

代码实现:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b;
	long long res=1;
	scanf("%d%d",&a,&b);
	for(int i=1;i<=b;i++){
		res=res*a;
		if(res>1e9){
			printf("-1");
			return 0;	
		} 
	}
	printf("%lld",res);
	return 0;
}

- [2] [CSP-J 2022] 解密

题目描述

给定一个正整数 \(k\),有 \(k\) 次询问,每次给定三个正整数 \(n_i, e_i, d_i\),求两个正整数 \(p_i, q_i\),使 \(n_i = p_i \times q_i\)、\(e_i \times d_i = (p_i - 1)(q_i - 1) + 1\)。

输入格式

第一行一个正整数 \(k\),表示有 \(k\) 次询问。
接下来 \(k\) 行,第 \(i\) 行三个正整数 \(n_i, d_i, e_i\)。

输出格式

输出 \(k\) 行,每行两个正整数 \(p_i, q_i\) 表示答案。
为使输出统一,你应当保证 \(p_i \leq q_i\)。
如果无解,请输出 NO

样例 #1

样例输入 #1

10
770 77 5
633 1 211
545 1 499
683 3 227
858 3 257
723 37 13
572 26 11
867 17 17
829 3 263
528 4 109

样例输出 #1

2 385
NO
NO
NO
11 78
3 241
2 286
NO
NO
6 88

【数据范围】
以下记 \(m = n - e \times d + 2\)。
保证对于 \(100\%\) 的数据,\(1 \leq k \leq {10}^5\),对于任意的 \(1 \leq i \leq k\),\(1 \leq n_i \leq {10}^{18}\),\(1 \leq e_i \times d_i \leq {10}^{18}\)
,\(1 \leq m \leq {10}^9\)。

测试点编号 \(k \leq\) \(n \leq\) \(m \leq\) 特殊性质
\(1\) \(10^3\) \(10^3\) \(10^3\) 保证有解
\(2\) \(10^3\) \(10^3\) \(10^3\)
\(3\) \(10^3\) \(10^9\) \(6\times 10^4\) 保证有解
\(4\) \(10^3\) \(10^9\) \(6\times 10^4\)
\(5\) \(10^3\) \(10^9\) \(10^9\) 保证有解
\(6\) \(10^3\) \(10^9\) \(10^9\)
\(7\) \(10^5\) \(10^{18}\) \(10^9\) 保证若有解则 \(p=q\)
\(8\) \(10^5\) \(10^{18}\) \(10^9\) 保证有解
\(9\) \(10^5\) \(10^{18}\) \(10^9\)
\(10\) \(10^5\) \(10^{18}\) \(10^9\)

乍一看,p 从 1 开始遍历,q 从 n[i] 开始遍历就可以了,but,如果有 \(10^{18}\) , \(10^9\) 这种变态数据,肯定会爆!!!(也就是超时);所以开始对方程进行化简:

那么:

然后就非常简单了撒QWQ,就是初中学的求根公式!!!

代码实现:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    ll k;
    scanf("%lld",&k);
    while (k--) {
        ll n,e,d;
        scanf("%lld%lld%lld",&n,&e,&d);
        ll bq = sqrt((n - e * d + 2) * (n - e * d + 2) - (n * 4));
        ll dq = n - e * d + 2;
        ll P = (bq + dq) / 2;
        ll Q = dq - P;
        if (P * Q == n && e * d == (P - 1) * (Q - 1) + 1 && P && Q) {
            printf("%lld %lld\n",min(P, Q),max(P, Q));
        }else printf("NO\n");
    }
    return 0;
}

至于剩下的 T3 与 T4,今天晚上还要改今天考试的题,是真的没时间写了,所以说这一天过的还是挺充实的,嘻嘻QWQ!!!

古德er拜————————————华丽的结束

标签:10,12,输出,18,样例,暑期,times,leq,Day
From: https://www.cnblogs.com/Wanghaoran-20080414/p/17594218.html

相关文章

  • day19
    一、验证码1.打开后得到一堆jpg,根据名字猜测是将所有jpg上的数字获取下来,然后进行某种运算,网上找一下python识别验证码的脚本,但是我的这个识别出来有问题,有一位是d,但应该是0点击查看代码importddddocrtmp=''ocr=ddddocr.DdddOcr()f1=open('1.txt','wb')foriinr......
  • AtCoder Beginner Contest 312
    A-Chord#include<bits/stdc++.h>usingnamespacestd;int32_tmain(){ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);strings;cin>>s;if(s=="ACE")cout<<"Yes\n";e......
  • day3
    面向对象进阶1.static表示静态,可以修饰成员方法、成员变量静态变量staticStringteacherName;调用方式:类名调用(推荐)对象名调用静态变量随着类的加载而加载,优先于对象出现的,不属于对象,属于类静态方法多用在测试类和工具类中Javabean类中很少会用调用方式:类名调用......
  • week6 day2
    不出意外 今天又喝酒了......自从考出驾照之后  状态不佳 不想学习  但今天还是看了一点 构造函数子类不会继承父类的构造函数 如果在子类的构造函数中想要调用父类 需要在构造函数的第一行使用 super()如果你没有调用编译器也会帮你调用父类的构造函数必......
  • Rocky虚拟机(One Day)Rocky虚拟机的安装及命令目录结构说明
    OneDay一、Rocky虚拟机安装1、下载方式VMware17下载官网下载地址:DownloadVMwareWorkstationProVM17百度网盘链接:https://pan.baidu.com/s/1rG0p3Mls-7OEAAm6PHufiw提取码:642uRocky虚拟机下载官网下载地址:RockyLinux待出2、VM17虚拟机安装1、下......
  • 大二暑期实习记录(一):处理组件绑定数据错误(数组解构,map()方法)
    好家伙,搬砖 今天在做组件迁移(从一个旧平台迁移到一个新平台)的时候,发现了一些小小的问题: 1.错误描述:在穿梭框组件中,使用"节点配置"方法添加数据的时候,左测数据选择框直接消失了这里我们猜测一下,大概是数据处理出了问题此处,我们使用"数据绑定"绑定数据方法: ......
  • Python基础day56 Django URL分组设置
    URL函数的使用(支持正则表达式)#django1中使用的是urlurl('test',views.test),url函数的第一个参数是支持正则表达式的如果匹配到一个路由,就不在往下匹配,直接执行路由对应的视图函数#http://127.0.0.1:8000/test/是django默认设置的,django会先拿着test去匹配,如果匹配不......
  • 鸟哥Linux私房菜学习笔记day5
    第十章4.Bashshell操作环境终端环境设置:sttyset登录终端时,自动获取的一些终端的输入环境的设置。stty[-a]set[-uvCHhmBx]echo$-可以显示目前所有的set设置值 通配符与特殊符号符号       意义*                 代表0到无穷多......
  • DASCTF 2023 & 0X401七月暑期挑战赛
    比赛只出了一道,小菜不是罪过-_-controlflow这个题动调到底就行foriinrange(40):after_xor[i]=inp[i]^0x401after_xor[i]+=i*i;foriinrange(11,30,1):x=i-10after_xor[i]^=x*(x+1)foriinrange(40):after_xor[i]-=iafter_xo......
  • 2023牛客暑期多校5 I The Yakumo Family
    题意RanfeelsboringathomeandwantstoproposeamathproblemwithYukariandChen!So,here'sTheYakumoFamilyProblem:Givenanintegerarraya,trytocalculatethevalueofthefollowingequationmodulo\(998244353\):\[\sum_{1\lel_1\le......