考试反思

这次考试翻了。。。明明是自己讲的数论,结果第一题居然没有看出来是费马小定理,第二题想到了用类似前缀和的方法,但因为时间问题没有继续想下去,匆匆打了个暴力,今天又是暴力的一天呐(两道题全tm暴力),还是要多多加油才行;

第一题

题面
给定 a 和 b,求 (…(( a^a)^a)^a …) a (b 个 a)。
AC思路
不难想到这个东西就是 a^a^(b-1) ,然后快速幂跑就好了。
注意一下取模, a^(p-1) 同余1(mod p) ,所以在计算 a^(b-1) 时,模 1e9+6。
O (log a+log b ) 。
代码

#include<iostream>
#include<cstdio>
using namespace std;
long long a;
long long b;
long long mod=1e9+7;
int main()
{cin>>a>>b;long long sum=1;long long l=a;long long ci=b-1;while(ci){if(ci%2==1)sum=(sum*l)%(mod-1);l=(l*l)%(mod-1);ci=ci/2;}ci=sum;sum=1;l=a;while(ci){if(ci%2==1)sum=(sum*l)%mod;l=(l*l)%mod;ci=ci/2;}cout<<sum;
}

第二题

题面
DYY 每天深夜套路健美。
DYY 有一个长度为 n 的健美序列,序列中每一个元素 1<=i<=n 都有一个权值 a i 。DYY 可以选取一个权值和为正奇数的连续区间[L,R](其中 1<=L<=R<=n),然后序列就会产生能量,让他变得更健美。
但是,如果序列能量过大,可能会吵醒住在隔壁的猫。
所以,DYY 希望你告诉他最小的权值和与区间的左右端点。若有多个区间符合条件,则按照左端点、右端点的顺序选择字典序最小的答案。若无解,DYY 也没有什么办法,只好输出-1 了。
AC思路
我们知道偶数减去比他小的奇数得到正奇数,奇数减去比他小的偶数得到正奇数,所以我们只要算一遍前缀和,然后把奇数和偶数分别存入两个set里面,对于每个数用lower_bound在另一个set中找大于等于它的数的位置,该位置-1的位置上的数就是比它小的最接近它的数了,然后更新和的最小值或者左右端点最小值就可以了;
代码

#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
long long n;
long long    a[400000];
long long qian[400000];
long long l=0,r=0;
long long mm=41146456456464;
struct node
{long long zhi;long long id;friend bool operator < (node a,node b){if(a.zhi<b.zhi)return 1;return 0;   }//定义运算符;
};
set <node> q1,q2;
long long fabs(long long a)
{if(a<0)return -a;return a;
}//因为可能是负数所以要记得加绝对值;
int main()
{scanf("%lld",&n);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);qian[i]=qian[i-1]+a[i];}node x;x.id=0,x.zhi=0,q2.insert(x);//预先存入一个0; for(int i=1;i<=n;i++){if(fabs(qian[i])%2==1)//如果是奇数 {x.zhi=qian[i];x.id=i;if(!q1.count(x))q1.insert(x);//如果队列中没有这个数才存入; if(q2.empty())continue;//偶数队列中没值就略过; set <node> ::iterator xx=q2.lower_bound(x);//找一个大于等于它的数的位置,那么其位置-1就是比它小的偶数; set <node> ::iterator yy=q2.begin();//取开头; if(xx==yy)continue;//如果大于等于它的就在队首,就说明前面没有数了,就略过; --xx;//有数就取; if(x.zhi-(*xx).zhi<mm&&x.zhi-(*xx).zhi>0){mm=x.zhi-(*xx).zhi;l=(*xx).id+1;r=x.id;}//判断最小值,更新左右; else if(x.zhi-(*xx).zhi==mm){if((*xx).id+1<l){l=(*xx).id+1;r=x.id; }}//如果相等就找字典序最小的; }else{x.zhi=qian[i];x.id=i;if(!q2.count(x))q2.insert(x);if(q1.empty())continue;set <node> ::iterator xx=q1.lower_bound(x);set <node> ::iterator yy=q1.begin(); if(xx==yy)continue;--xx;if(x.zhi-(*xx).zhi<mm&&x.zhi-(*xx).zhi>0){mm=x.zhi-(*xx).zhi;l=(*xx).id+1;r=x.id;}else if(x.zhi-(*xx).zhi==mm){if((*xx).id+1<l){l=(*xx).id+1;r=x.id; }}}//和处理奇数的时候其实是一样的; }cout<<mm<<" "<<l<<" "<<r<<endl;//输出;
}

11月05日解题报告相关推荐

  1. 11月03日解题报告

    考试心得 今天的考试应该还算在状态的吧,第一题虽然在lemon上面只有30分,但是在洛谷上是A掉了,emmm-虽然是这样但还是要注意不要开太大才是,毕竟不怕一万就怕万一嘛-还是要注意一下就是- 第一题 ...

  2. 11月02日解题报告

    考试心得 首先吐槽一下题目deep dark fantasy??一看就不是什么正经题目,不过难度倒是比较好的,就不管那么多了,emmmm,做题的一个总的想法是还是要细心,感觉有时候想到了正解,但没想全 ...

  3. 问道服务器异常,未能正常,《问道》手游11月05日04:50分维护公告

    各位亲爱的道友: 为保证服务器的运行稳定和服务质量,<问道>手游所有公测服务器(内测专区除外)将于2020年11月05日04:50-09:00进行停机维护,实际关服时间可能与公告关服时间存 ...

  4. 神雕侠侣服务器维修,《神雕侠侣》11月05日全服维护更新公告

    各位<神雕侠侣>的玩家朋友: 大家好,为了保证服务器的稳定和服务质量,<神雕侠侣>将于2015年11月05日早上8:00停机,进行停机维护工作,预计维护时间3小时,具体开服时间 ...

  5. 2021年度上海公务员考试公告(11月05日开启)

    2021年上海公务员考试公告已发布,报名时间为2020年11月6日0:00至12日12:00 ,笔试时间为2020年12月13日,笔试公共科目为行测.申论,不指定复习教材. 上海市2021年度考试录用 ...

  6. 11月16日实验报告

    1.设计一个复数Complex类,用友元函数重载乘法运算符(*),用成员函数重载除法运算符(/),完成两个复数对象的乘除法. #include<iostream> using namesp ...

  7. 2014年11月05日

    蠢女人.我想我要是有这样的女朋友我早就. 算了. 今天我大姐说要做微商.二姐说太贵.然后说我工资交房租就没了.我说你刚毕业多少工资.他说一千多.然后振振有词物价高了... 蠢女人简直灾难

  8. 西湖大学鞠峰:环境微生物宏基因组学(报告视频+PPT,11月23日)

    报告题目:环境微生物宏基因组学 报告人:鞠峰研究员 报告时间:2020年11月23日 鞠峰,西湖大学研究员,中国工程院院刊<Engineering>编委.Frontiers系列期刊编委与审 ...

  9. C#与Javascript变量、函数之间的相互调用2008年11月28日 星期五 05:28 P.M.1.如何在JavaScript访问C#函数?

    C#与Javascript变量.函数之间的相互调用 2008年11月28日 星期五 05:28 P.M. 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3 ...

最新文章

  1. stm32cubemx生成不了keil工程文件_STM32CubeMX系列教程03_创建并生成代码工程
  2. 【 Notes 】Best linear unbiased estimator(BLUE) approach for time-of-arrival based localisation
  3. 微信小程序开发第二弹
  4. Android 系统自动重启Bug(高通平台)
  5. Java学习之Iterator(迭代器)的一般用法(转)
  6. Amcharts 柱状图和线形图
  7. 解决SQL Server 2005数据库中datetime时间字段在前端显示时分秒的问题
  8. [css] 如何使用CSS绘制一个汉堡式菜单
  9. (设计模式)简单工厂模式之通过配置文件动态创建实现类
  10. express与express-art-template两者相结合使用方法
  11. 动态规划——最长上升子序列问题(LIS)
  12. powerpoint 发布_PowerPoint的死亡:这些谈话打破了常规
  13. Android实现EditText插入表情、超链接等格式
  14. 从零基础入门Tensorflow2.0 ----六、29keras_generator读取 kaggle 10 monkeys数据
  15. Linux内核模块静态加载的顺序
  16. YOLOv5数据集标注工具
  17. MDB报错:about to fork child process, waiting until server is ready for connections. forked process:XX
  18. 历数OpenMobile开发的一些坑
  19. 手把手教你刷github提交记录
  20. linux系统安装MySQL数据库安装保姆级教程及1045错误和2058问题解决

热门文章

  1. C# 多种方式教你输出五角星
  2. 4月15日(完成框架与两大内容)
  3. windows10系统时间线中的活动历史记录无法删除的bug,解决方案
  4. 自考专科历练计算机实践考试,自考等于历练
  5. linux内核启动第一个进程,ARM64的启动过程之(一):内核第一个脚印
  6. 自动化测试框架,YYDS
  7. 纸鸢|物联网云平台选型手册
  8. 在Excel中对彩票号码行进行排序
  9. PGADMIN4无法连接本地数据库的解决方案
  10. latex和word对齐 1.5倍行距