acm公选课2

杭电ACM hdu 2079 选课时间 解题报告(母函数) 杭电ACM hdu 2079 选课时间的解题报告。 阅读详情

二分查找 (燕归来
1 3 5 10 11 20 27 50 80 88
956
二分查找
Problem:956
Time Limit:1000ms
Memory Limit:65536K
Description
有n(1<=n<=1000005)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请找出序列中第1个大于x的数的下标!
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和x,第二行是已经有序的n个整数的数列。
Output
对于每个测试实例,请找出序列中第1个大于x的数的下标!。
Sample Input
3 3
1 2 4
Sample Output
2
Hint
本题为多组数据,while(scanf("%d%d",&n,&m)!=-1)即可。
Source
upper_bound函数法(返回第一个大于的元素的下标)

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int a[2000000],n,x;
    
    while(cin>>n>>x)
    {
      
       for(int i=1;i<=n;i++)
       {
           cin>>a[i];
       }
       int t=upper_bound(a+1,a+n+1,x)-a;
       cout<<t-1<<endl;
    }
    return 0;
}

901
upper_bound(a,a+n,s2)-lower_bound(a,a+n,s1))

//308ms
#include <bits/stdc++.h>
using namespace std;
int i,n;
double a[100010],s1,s2;
int main()
{
    ios::sync_with_stdio(false);
    cin>>n;
    for(i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+n);
    while(cin>>s1>>s2)
    printf("%d\n",upper_bound(a,a+n,s2)-lower_bound(a,a+n,s1));
    return 0;
}
C++Copy

899
这也是裸的找
Problem:899
Time Limit:1000ms
Memory Limit:65536K
Description
我们现在都知道二分查找的主体是一个while循环,在每次循环里面进行询问,从而决定是找到了数据停止循环还是改变查找区间的范围。现在就是考验大家是否理解了原理的时候了!
运用二分查找在序列{1,2,3,……,n}中找到k需要循环多少次?
Input
输入多组数据, 每组输入两个整数n和k,占一行(0<= k <= n)。n为32位整数
Output
对每组输入,输出在序列{1,2,3,……,n}中找到k的循环次数。
Sample Input
5 2
5 1
10 3
Sample Output
3
2
3
Hint
Source
手写二分法

#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    int n,k,l,r,m,ans;
    while(cin>>n>>k)
    {
        ans=0;l=1,r=n;
        while(l<=r)
        {
            ans++;
            m=l+(r-l)/2;
            if(m>k)r=m-1;
            if(m==k)break;
            if(m<k)l=m+1;
        }
        printf("%d\n",ans);
    }
    return 0;
}

递归
自己调用自己
边界条件:确定递归何时终止
递归模式:大问题是如何分解成小问题的
递归要用栈来进行
fibnacci–递归版
Problem:1762
Time Limit:1000ms
Memory Limit:65535K
Description
已知数列 1 1 2 3 5 8 13
Input
计算第n项的值 (1<=n<=15)
Output
输出题意
Sample Input
3
Sample Output
2
Hint
Source
不够大,可以递归

#include <bits/stdc++.h>

using namespace std;
int f(int n)
{
    if(n==1)
    {
        return 1;
    }
    if(n==2)
    {
        return 1;
    }
    return f(n-1)+f(n-2);
}
int main()
{
    int n;

        while(cin>>n)
        {
            cout<<f(n)<<endl;
        }

    return 0;
}

幂次方-递归
Problem:1754
Time Limit:1000ms
Memory Limit:65535K
Description
任何一个正整数都可以用2的幂次方表示。例如
137=27+23+2^0
由此可知,137可表示为:
2(7)+2(3)+2(0)
而7又可以表示为:2(2)+2+2(0)
3可以表示为:2+2(0)
因此137最终表示为:
2(2(2)+2+2(0))+2(2+2(0))+2(0)
Input
一个正整数n(n≤20000)。
Output
符合约定的n的0,2表示(在表示中不能有空格)
Sample Input
1315
Sample Output
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
Hint
Source
洛古


ACM总结报告 acm总结报告 阅读详情

相关推荐

ESP32 IDF开发 应用篇⑲ 空中升级OTA

在实际产品开发过程中,在线升级可以远程解决产品软件开发引入的问题,更好地满足用户需求。OTA(空中)更新是使用 Wi-Fi 连接而不是串行端口将固件加载到 ESP 模块的过程。(1)、ESP32 的 OTA 升级有三种方式:·Arduino IDE:主要用于软件开发阶段,实现不接线固件烧写·Web Browser:通过 Web 浏览器手动提供应用程序更新模块·HTTP Server:自动使用http服务器 - 针对产品应用在三种升级情况下,必须通过串行端口完成第一个固件上传。

lu330274924的博客 3324

二分查找算法

二分查找也叫做折半查找,时间复杂度为log2nlog_{2}nlog2​n,适用的条件是数组需要有序,其中主要涉及到3个变量——left,right,mid。二分查找的难点有3个:总体要遵循的原则是循环不变量,即区间的定义在while每次循环的收获都要保持一致,最常见的有两种方式:左闭右闭和左闭右开。区间的定义也影响了right的更新。left、right、 mid的定义,以及更新:right=mid还是right=mid-1。

qq_43705892的博客 157

零成本实现飞牛 OS 内网穿透:CloudFlare 隧道搭建全攻略

一、引言:突破内网限制的最优解当你的内网环境中部署了飞牛 OS 系统(无论是老旧电脑还是 NAS 设备),想要实现公网访问时,传统方案往往面临两大痛点:公网 IP 申请困难且成本高DDNS 动态解析配置复杂专业内网穿透工具存在付费门槛今天为大家带来零成本解决方案:通过免费域名搭配 CloudFlare 隧道技术,无需公网 IP 即可轻松实现飞牛 OS 服务的公网访问。全程操作可视化,新手也能快速上手!二、前期准备:必备工具清单(1)域名准备。

Honmaple的博客 7493

acm新手小白必看系列之(8)——二分法精讲及例题

acm新手小白必看系列之(8)——二分法精讲及例题 二分,分的是答案,直接在答案在的区间范围中二分,分出一个值,就判断是不是答案,并进行转移 如果已知候选答案的范围(min,max)(单调有序),(无序的话自己排序),有时候我们不必通过计算得到答案,只需在此范围内应用“二分”的过程,逐渐靠近答案(最后,得到答案)! 通过二分的方法,大幅度地跳过一片没必要的比较和选择 首先介绍最典型的二分——二分...

永恒之蓝的博客 4850

基于立创EDA的8口全千兆POE交换机设计详解:RTL8370N芯片与90W大功率供电方案

本文详细解析了基于立创EDA设计的8口全千兆POE交换机方案,核心采用RTL8370N交换芯片与支持90W大功率供电的IEEE 802.3bt标准PD芯片。文章深入探讨了PSE/PD供电管理、电源架构设计、电路细节及关键散热方案,为DIY或学习POE交换机硬件设计提供了完整的开源实践指南。

weixin_29050829的博客 1万+

SAP采购订单中项目类别B(限制)的控制逻辑

在笔者所在企业中,框架类采购订单中项目类别需要选择B(限制)。今天笔者从比较全面的角度分析了一下这个项目类别B到底可以决定些什么?控制到什么?先从后台SPRO中打开相应的配置菜单。 打开项目类别B之后,可以看到一些配置信息,这里有一点与其它配置不同的地方,即无法新增项目,也无法修改现有项目。这个疑惑今后再去解决吧。当前只研究项目类别B的控制逻辑。 下面就参考上图中的配置分段来分析和测试其控制逻辑, 1、如项目类别配置图,所需材料值为不允许;经测试,如下图在采购订单创建时,不能输入物料编号条目。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 6032

详解二分查找(所有关于二分查找)

转载至: https://www.cnblogs.com/kyoner/p/11080078.html 我周围的人几乎都认为二分查找很简单,但事实真的如此吗?二分查找真的很简单吗?并不简单。看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的: Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky… 这句话可以这样理解:思路很

luseysd的博客 2926

InSAR图像配准:从像素级到亚像素级的精度提升策略

本文深入探讨了InSAR图像配准技术,从像素级到亚像素级的精度提升策略。通过分析最大频谱法和相干系数法的适用场景,结合频域补零插值和四叉树分块等高级技术,实现1/8像素级的高精度配准。文章还提供了实用的精度验证方法和常见问题排查指南,为InSAR数据处理提供全面解决方案。

nginx7reverse的博客 836

acm大一寒假集训--二分查找/二分算法

题目来源于东北林业大学OJ 东北林业大学OJ,点击进入???????????? 好困好想哭!!! 今天的文章来得特别晚,因为,现在才AK 二分太难了!!! 玄学 今天的题我怎么ac的? 我不知道 不多废话 ,上题 题目一:二分查找 Description 有n(1<=n<=1000005)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请找出序列中第1个大于x的数的下标! Input 输入数据...

NEFU_kadia的博客 499

开源模型应用落地-qwen模型小试-入门篇(二)

在windows环境下,使用transformer设置模型参数/System Prompt/历史对话

以微薄之力,予他人些许温暖. 3235

网络安全系列-四十三:使用Suricata分析恶意流量pcap文件

本文基于[网络安全系列-三十六:使用Suricata IDS分析pcap文件]和 [网络安全系列-四十二: Suricata之rulesets的激活、更新及动态加载]的基础上,使用suricata针对包含恶意流量的pcap文件进行分析,触发事件告警,并对suricata输出的日志进行逐个分析,让你掌握针对恶意流量的分析步骤,及怎么查看suricata输出的日志。

penriver的博客 2885

大一寒假培训(六)——二分查找

大一寒假培训(六)——二分查找

Icey_dying的博客 831

《从底层结构开始学习FPGA》目录与传送门

《从底层结构开始学习FPGA》目录与传送门

孤独的单刀 16万+

ACM公选课第七节DP基础2+3 2020.4.21-5.10补

文章目录nefu16 nefu16

weixin_44382711的博客 401

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

acm公选课1(未完)

数的长度 Problem:65 Time Limit:1000ms Memory Limit:65536K Description N! (N的阶乘) 是非常大的数,计算公式为:N! = N * (N - 1) * (N - 2) * … * 2 * 1)。现在需要知道N!有多少(十进制)位。 Input 每行输入1个正整数N。0 < N < 1000000 Output 对于每个N,输出N!的(十进制)位数。 Sample Input 1 3 32000 1000000 Sample Outp

paimonL的博客 279

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

bnu1077 难选的公选课 C语言版

北京师范大学珠海分校Judge Online of ACM ICPC1077 难选的公选课C语言版#include int main(){    int i,n,a[101],b[101]={0};    scanf("%d",&n);    for (i=1;i"%d",&a[i]);    while(1){        scanf("%d",&i);        if (i==0) br

姜南的代码库 491

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

选课时间 杭电ACM Java

选课时间(题目已修改,注意读题) Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)   Input 输入数据的第一行是一个数据T,表示有T组数据。 每组数据的第一行是两个整数n(1 接着有k行,每行有两个整数a(1

fool宋的专栏 1448

ACM公选课7/8 DP算法

DP算法 动态规划法设计算法一般分成三个阶段: (1)分段:将原问题分解为若干个相互重叠的子问题; (2)分析:分析问题是否满足最优性原理,找出动态规划函数的递推式; (3)求解:利用递推式自底向上计算,实现动态规划过程。 动态规划法利用问题的最优性原理,以自底向上的方式从子问题的最优解逐步构造出整个问题的最优解。 DP 就是要避免重复计算! 例题 穿过街道 #include <bits/stdc++.h> using namespace std; int f[100][100]; int g

qq_46126537的博客 424

实现简单的学生选课信息管理系统

中山大学软件工程程序设计I 大作业。要求本系统模拟实现学生课程信息管理系统,其中包括学生信息,课程信息以及学生的选课信息(储存在文本文件当中),其中功能包括三部分:学生相关功能 添加学生信息到学生信息文件当中,学生信息包括:学号(stuId),姓名(stuName),性别(stuSex) 删除学生信息 改变学生信息 查看学生信息 课程相关功能 添加课程信息到课程信息文件中,课程信息包括:课程编号(c

とある黄鱼のOIブログ 1万+

acm公选课笔记 2020.3.31

课件 先回忆基本知识 上oj下课件 ///1. int gcd(int a,int b) { int r; while(b>0) { r=a%b; a=b; b=r; } return a; } /// int gcd(int m ,int n) { int r; r=m%n;...

weixin_44382711的博客 255

杭电ACM 2097 选课时间(母函数)

#include #include #include int main() {  int t,n,m,i,j,k;  int s[10][2],c1[100],c2[100];  scanf("%d",&t);  while(t--)  {           memset(c1,0,sizeof(c1));         memset(c2,0,sizeof(c2));

hui1570的专栏 472

ZISUOJ 2024算法基础公选课练习一(3)

接(2)后完成I-J两道题。

Beau_Will的博客 517

CT鸡的第一次

呆丁正在吃鱼香肉丝味的UFO。 我们现在是大一下,选了ACM公选课,期末考试有5道题,作对一道给过,还有15天就期末了。 上节课问老师期末的考试,在得知我们一题未刷后,老师说我们要完蛋了!。。。 决心要好好刷题了。。。 嗯。。最后。。 改革春风吹满地 人见人爱A和B!

呆呆和呆丁的CT鸡 440

ACM结课总结

ACM选课收获感悟 学院:信息科学与技术学院 专业班级:计算机科学与技术二班 姓名:荆慧 学号:20163918 一、关于选课 一个学期的ACM课程结束,首先自然是要感谢老师的,感谢老师的辛苦教学。但是这只是课程的结束,并不是说再见的时候,我还想继续在ACM这条路上走下去。 当初选课时,受到了来自各方面的反对。因为难就不应该学吗?一座山,不会因为你不爬就降低它

jinghui_7的博客 556

ACM课程总结

ACM课程总结 经过半年多与ACM的接触,对ACM有了一定的认识。ACM是一个非常有意义的课程与平时学习的编程不同,ACM锻炼的是人的思维能力。对于学计算机的人来说有巨大的帮助。 第一次接触ACM是加入ACM协会,听学长讲题,虽然难懂,但却都是一些很有用的知识。本来以为ACM只是一个协会,不知道还有专业课程。选课的时候,C++老师告诉我们ACM是门很难学的课,很容易挂科,让我们慎重考虑。学长也告诉过我们这门课很难,于是班上很多人都放弃了ACM,选了一些网课,传统文化,孙子兵法……便于拿到学分绩点。我并不想为

zhaochuanfei666的博客 926
上一篇: 2021-3-18 锐格实验1字符串
下一篇: nefuoj 555 和尚的奖学金
Old Lai
博客等级 码龄6年 6粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值