NOIP-贪心,递推,枚举,模拟 分类: noip ...


bzoj2241

枚举矩形的长和宽,判断是否可行。时间复杂度:O((n*m)^3)
剪枝:1.最优化剪枝 2.如果矩形面积不能整除地图点权之和,则直接判断不可行。


const int maxn = 105, maxm = 105;
int n, m, sum, ans;
int map[maxn][maxm];
int tmp[maxn][maxm];

bool check(int row,int col)
{
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            tmp[i][j] = map[i][j];

    for(int i = 1; i + row - 1 <= n; i++)
        for(int j = 1; j + col - 1 <= m; j++)
            if(tmp[i][j])
            {
                for(int p = row - 1; p >= 0; p--)
                    for(int q = col - 1; q >= 0; q--)
                        tmp[i+p][j+q] -= tmp[i][j]; 
            }
     for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            if(tmp[i][j]) return false;     

     return true;       
}

int main()
{
#ifndef ONLINE_JUDGE
    freopen("bzoj2241.in","r",stdin);
    freopen("bzoj2241.out","w",stdout);
#endif

    read(n), read(m);
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= m; j++)
            read(map[i][j]), sum += map[i][j];

    for(int i = n; i > 0; i--)
        for(int j = m; j > 0; j--)
            if(i*j > ans && !(sum%(i*j)) && check(i,j)) ans = i*j;

    write(sum/ans);

#ifndef ONLINE_JUDGE
    fclose(stdin);
    fclose(stdout);
#endif
    return 0;       
}

uva11729

按执行时间排序,贪心即可。

证明:交换相邻安排任务的顺序,证明一定不比原决策更优。


int main()
{
    int CaseNum = 0;

#ifndef ONLINE_JUDGE
    freopen("Uva11729.in","r",stdin);
    freopen("Uva11729.out","w",stdout);
#endif

    while(scanf("%d",&n) != EOF)
    {
        if(!n) break;

        ++CaseNum, ans = 0;

        printf("Case %d: ",CaseNum);

        for(int i = 1; i <= n; i++)
            std::cin >> c[i].second >> c[i].first;

        std::sort(c + 1, c + n + 1);

        for(int i = n, t = 0; i > 0; i--)
            t += c[i].second ,ans = std::max(ans, t + c[i].first);

        write(ans), puts("");
    }

#ifndef ONLINE_JUDGE
    fclose(stdin);
    fclose(stdout);
#endif
    return 0;       
}

hiho 1162

可以找规律,OEIS上有定义: http://oeis.org/A001835

Number of ways of packing a 3 X 2(n-1) rectangle with dominoes. - David Singmaster.

f(1)=1   f(2)=3   f(n)=4∗f(n−1)−f(n−2)(n>2)

状态压缩的递推也可以处理,当然两种递推都需要矩阵乘法优化。


const int Mod = 12357;

int n;

struct Matrix
{
    long long a[2][2];
}P, T, I, emp;
Matrix operator *(const Matrix &A,const Matrix &B)
{
    Matrix ret = emp;

    for(int i = 0; i < 2; i++)
        for(int j = 0; j < 2; j++)
        {
            for(int k = 0; k < 2; k++)
                ret.a[i][j] += A.a[i][k]*B.a[k][j]%Mod;
            ret.a[i][j] %= Mod;     
        }
    return ret; 
}
Matrix powermod(Matrix Q,int k)
{
    Matrix ret = I;
    while(k)
    {
        if(k&1) ret = ret*Q;
        Q = Q*Q, k >>= 1;
    }
    return ret;
}
int main()
{
#ifndef ONLINE_JUDGE
    freopen("cover.in","r",stdin);
    freopen("cover.out","w",stdout);
#endif

    read(n);

    if(n&1) putchar('0');
    else
    {
        n >>= 1;

        T.a[0][0] = 4;
        T.a[0][1] = 1;
        T.a[1][0] = Mod - 1;
        T.a[1][1] = 0;

        P.a[0][0] = 3;
        P.a[0][1] = 1;

        I.a[0][0] = 1;
        I.a[1][1] = 1;

        P = P*powermod(T, n - 1);

        write(P.a[0][0]);
    }

#ifndef ONLINE_JUDGE
    fclose(stdin);
    fclose(stdout);
#endif
    return 0;       
}

NOIP2012 国王游戏

贪心按 ai∗bi 排序,然后高精度处理。


const int maxn = 1005, Base = 10, maxl = 10000;
int n, a[maxn], b[maxn];
std::pair<int,int> c[maxn];
BigNum emp, poi, tmp, ans;

int main()
{
#ifndef ONLINE_JUDGE
    freopen("game.in","r",stdin);
    freopen("game.out","w",stdout);
#endif

    read(n), read(a[0]), read(b[0]);

    for(int i = 1; i <= n; i++)
        read(a[i]), read(b[i]), c[i] = std::make_pair(a[i]*b[i], b[i]);

    std::sort(c + 1, c + n + 1);    

    for(int i = 1; i <= n; i++)
        a[i] = c[i].first/c[i].second, b[i] = c[i].second;

    poi.len = 1, poi.num[1] = 1;
    for(int i = 1; i <= n; i++)
    {
        poi *= a[i-1], tmp = poi, tmp /= b[i];

        if(tmp > ans) ans = tmp;
    }

    ans.print();

#ifndef ONLINE_JUDGE
    fclose(stdin);
    fclose(stdout);
#endif
    return 0;       
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/dashgua/p/4722972.html

【总结】[NOIP]提高难度以下题目汇总① 现在已经准备好从1997年NOIP(普及&提高)的题做到2016年了 这20年的题目洛谷上都有 因为提高难度以下的题目比较简单 就简单的汇总来写 概括一下每一个题的核心 这是第一弹 提高难度以上的题会一个一个写的题目列表 阅读详情

相关推荐

从NOIP到CSP-J:这20多年普及组真题里,藏着哪些必考的“祖传”算法?

本文深入解析了从NOIP到CSP-J竞赛中20多年普及组真题的核心算法考点,包括模拟、枚举、贪心和搜索等四大基础算法体系,以及数据结构的应用和经典问题的变式规律。通过历年真题的详细分析,帮助竞赛选手掌握必考的“祖传”算法,提升解题效率和竞赛成绩。

程涛 468

【算法】算法基础入门(进入算法的世界)

初学算法记录一下学习过程,内容大概是一些基础算法的介绍,适合刚学完c语言的同学看,浅浅的认识一下算法,内容会比较浅薄见谅

2301_79784865的博客 1976

骗分导论 CSP、NOIP、蓝桥杯、PAT、USACO等竞赛的算法骗分技巧 轻松省三

问题来了,那么多座桥,炸一座就破坏岛屿的联系,可能性微乎其微(除非特别设计数据)。它们的价值极大,不仅能初步帮你检验程序的对错,而且,如果你不会做这道题,你就可以直接输出样例!在OI考试中最后难的题数据最后的几个,他们往往不会创造新的数据,此时就可以直接输出最后几个数据了。需要运用《骗分导论》第3章中学到的知识,先写出朴素算法,然后造一些数据,可能就会发现规律。有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。据说,在NOIP2013中,有人最后一题不会,愤然打了个随机数,结果得了。

星卯教育-信奥教练tony 6403

五大基础算法(枚举、递归、分治、贪心、模拟)

一、枚举法 枚举法,本质上就是搜索算法。 基本思想: 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素。 用题目中给定的检验条件判定哪些是无用的,哪些是有用的。能使命题成立。即为其解。

LinJM-机器视觉 3万+

CSP-J (NOIP普及组) 历年复赛真题及考察内容(1998~2021)

简单数学、枚举、进制转换。动态规划(高级)、栈。

星卯教育-信奥教练tony 4851

noip算法之递推算法讲义

在有些问题中,相邻两项或多项数字(状态)之间存在某种关系,可能通过前一项或多项按照某一规律推出其后一项数字(状态),或者是通过后一项或多项按照某一规律推出其前一项数字(状态),就可以说它们存在一种递推关系。如果能找出问题的前后两项或前后多项的递推关系,利用循环控制,问题可以很好的得到解决,因此,建立递推关系式是解决递推问题的关键

六种常用算法

原始地址 http://home.donews.com/donews/article/6/64251.html 六种常用算法 有条不紊——递推法破解难题 问:“我对数据结构有了一定了解,但还是不太懂程序。从经典公式“程序=算法+数据结构”得知,是因为不了解算法。能不能介绍几种简单的算法,当然从最容易懂的那种开始了?” 答:“算法就是能够证明正确的解题步骤,算法有许多种,最简单的无非下面的六

caozhihong_erp的专栏 1763

JavaScript性能优化:全链路性能优化策略

JavaScript性能优化是提升Web应用质量的核心要素,直接影响用户体验与业务成果。研究表明,页面加载延迟1秒可能导致转化率下降7%。高效的JavaScript执行能减少主线程阻塞,避免动画卡顿或操作延迟,尤其在移动端低性能设备上更为关键。优化内存管理与减少冗余计算可降低浏览器资源消耗,防止因内存泄漏导致的崩溃,提升应用稳定性。在竞争激烈的互联网环境中,性能优势已成为产品差异化的关键因素,直接影响用户留存与商业价值。因此,性能优化应作为开发全周期的核心实践,而非事后补救措施。

weixin_49707375的博客 1270

10大基本算法

1.求值法基本是三个步骤:输入-计算-输出 2.递推法根据1-n的规律 求解第n个 3.递归法将大问题缩小为小问题,按照某种形式,使大小问题都符合这种求解方法。最终由小问题的求解推出大问题的求解 4.枚举法在一定区域内枚举出符合问题的全部解 5.模拟法根据实际问题变换成计算问题 6.分治法将问题拆分成若干个小问题,最后将小问题合并求出大问题的解 7.贪心法在单一阶段中,由局部最优最后求出全局最优 8.回溯法在有多选择的情况下,试探走每一步,不适合则退回 9.构造法构造模型(图形、方程组、函数式)解决问题 1

Vigor377的博客 675

VisionMaster 4.2.0安装

按照顺序安装。

XuXing_java的专栏 3774

【电力电子控制】基于强化学习的单相逆变器并网电流控制

本文将尝试以 DQN(Deep Q-Network)为例,设计并训练一个面向单相逆变器的智能控制器,实现对并网电流的精准调节。

weixin_62596197的博客 463

NOIP-贪心,递推,枚举,模拟

Finished

Dash 792

网格自适应_Comsol案例解析17:自适应网格的使用

本期导读自适应网格细化有许多优势,比如可以不用对网格进行全局加密,增加计算精度,又会降低求解自由度。本期仍然以气泡上升案例为例,在两相流模块中使用自适应网格。【打开案例模型】【修改网格】适当让气泡边界加密,注意,曲率因子越小,曲线上的网格越密【添加自适应网格】使用默认的参数即可,这里的误差指示器用的是水平集phi。可以根据具体求解模型选择适当的自变量作为误差指示器。【口诀】默认的一般是最...

weixin_28726871的博客 5680

CSP-J (NOIP普及组) 历年复赛真题考察内容(1998~2021)

TZOJ题目分类 本博客原文地址:https://www.cnblogs.com/BobHuang/p/14522022.html 其中,1.较简单题25题左右;2.动态规划17题,其中9题较好做;3.模拟(阅读题目将问题抽象建模写出程序)为11题;4.搜索8题,大部分不会做的题目均可以用搜索获得步骤分;5.贪心8题,部分不好想;6.高精度5题。 1.CSP-J 2020 T1 优秀的拆分 位运算、进制转换 T2 直播获奖 桶排序 T3 表达式 栈、深搜 T4 方格取数 动态规划(高级) 2.CSP-J 2

BobHuang的博客 1万+

机器人视觉实战:用OpenCV搞定手眼标定(附完整C++代码)

本文详细介绍了使用OpenCV实现机器人视觉中的手眼标定技术,包括核心算法、工业场景优化及完整C++代码示例。通过解析坐标系转换问题,提供从数据采集到标定验证的全流程解决方案,帮助开发者在复杂工业环境中实现高精度机械臂与视觉系统的协同作业。

weixin_29306571的博客 481

在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统

智能建筑能效优化是现代建筑管理的重要组成部分,旨在通过智能化手段降低能源消耗、减少碳排放并提高居住舒适性。通过Simulink进行智能建筑能效优化仿真,可以验证控制策略的有效性、优化系统设计并降低开发成本。以下是如何在MATLAB和Simulink中设计并仿真一个智能建筑能效优化系统的详细步骤。通过上述步骤,我们成功设计并实现了基于Simulink的智能建筑能效优化仿真。该系统能够模拟复杂的建筑环境,验证能效优化策略的有效性,并通过优化设计提高建筑的能源利用效率和居住舒适性。

xiaoheshang_123的博客 137

Noip2021模拟赛题解

我在校刷原来学长模拟赛题目时的题解

Evan_song1234的博客 1263

【嘉立创EDA】从AD21导入pcb边界到嘉立创EDA专业版

有许多前期工程由AD进行完成,在后续update的过程中,由于开模等原因限制,部分pcb外型需要继续沿用,本文将此过程记录,以供有需要的读者参考。

l64481000的博客 4516

2020.01.13【NOIP提高组】模拟A 组总结

估分:60+100+60=220 实际:0+90+60=150 T1:3804. 【NOIP2014模拟8.24】小X 的AK 计划 观察到每个点的贡献是一样的,因此可以想到如果没有数轴的限制的话,我们就直接用t[i]从小到大选,那么因为最优路径是不往回走,那么其实枚举一个最后的点之后,在前面比x小的数中从小到大选择就可以了,那么我们可以从小到大枚举最后的x,那么剩余的距离就是m-x,再对于...

zsjzliziyang的博客 193

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM)

生成扩散模型DDPM如下图所示分为前向、逆向两个过程,它首先通过不断往原始清晰数据中添加噪声使其变成标准高斯噪声(前向过程),而后期望从标准高斯噪声中还原原始数据(逆向过程)。若能实现,那便可从已知的标准高斯分布中采样一个噪声数据,而后利用DDPM模型生成符合原始数据分布的新数据。 Diffusion模型包含两个过程:数学符号:y∝xy\propto xy∝x:y正比于x,即y随着x增大而线性增大。 条件概率:贝叶斯公式:p(A∣B)=p(B∣A)×p(A)p(B)p(A|B)=\frac{p(B|A)\

小哲的博客 1508

蓝牙模块HM-10手册

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

NOIP2011提高组题解

NOIP2011提高组题解

Jack_Wangpeixin的博客 593

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

noip 近年分析

NOIP-2011-D1A 铺地毯 枚举,模拟 循环队列 NOIP-2011-D1B 选择客栈 枚举 二分查找、 NOIP-2011-D1C Mayan游戏 深搜 剪支 NOIP-2011-D2A 计算系数 数论 二项式系数、

persist 813

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

NOIP提高组复赛 知识点整理

枚举、模拟、贪心、递推、排序(快排) 高精度: 加法,减法,乘法(应该只会有高精乘单精),高精度除单精 分治: 二分查找 整体二分 CDQ分治 三分 搜索: dfs、剪枝 bfs、双向bfs 启发式搜索 迭代加深搜索 动态规划: 记忆化搜索 背包问题(01背包,完全背包,混合背包) 环形DP 数位DP 区间DP 序列DP DP优化(数据结构优化,单调队列优化,斜率优化) 状态压缩DP 图上DP 树...

Edward The Bunny 的博客 1815

【NOIP 模拟题】[T1](递推+乱搞)

风习袅袅,盈水展千华,飞檐亭角清铃响

reverie_mjp的博客 619

NOIP大纲整理:(零)历年2000-2016NOIP提高组题目分析

年份 题目名称 考查内容 难度   2000-2016年NOIP提高组复赛题目 2000-A 进制转换 初等代数,找规律 ★ 2000-B 乘积最大 ...

liusu201601的博客 5292

【总结】NOIP复赛来袭,各种算法经验大杂烩

NOIP来了,好紧张~ 以下将这进1年学的东东汇总一下,最后还有临场经验! 【递归】【递推】递归是在学完基础语言过后的第一个“算法”,哎,说白了就是函数调用自身,想当初完全无法理解,有了递归,斐波那契啊,汉诺塔啊都很简单了,这也为后面打下了基础,当然,纯递归也很容易超时,没办法~于是就有了记忆化递归,递推嘛差不多,只是用了for循环,加上数组来算,举个栗子: /* 记忆化递归解...

and1403的博客 503
上一篇: poj3093 分类: poj 2015-07...
下一篇: 最大权闭合子图 分类: bzoj poj ...
aa288288
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值