Codeforces Round #173 (Div. 2) <全>

别再拿空气标定法糊弄了!手把手教你搞定水下相机标定(附Python代码) 本文详细解析水下相机标定的关键技术,揭示传统空气标定法失效原因,并提供基于单视点模型(SVP)的完整Python解决方案。通过折射效应分析、标定板设计优化和代码实战演示,帮助读者掌握水下标定核心方法,有效提升水下视觉系统测量精度。 阅读详情
 

题目链接:

http://codeforces.com/contest/282

 

A题   Bit++

题意:求出通过一系列自增自减运算最后变量的值。不用考虑前后。水题。

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#define eps 1e-6
#define INF (1<<20)
#define PI acos(-1.0)
using namespace std;


int main()
{
    int n;
    char save[5];

    while(scanf("%d",&n)!=EOF)
    {
        int x=0;
        while(n--)
        {
            scanf("%s",save);
            if(save[0]=='X')
            {
                if(save[1]=='-')
                    x--;
                else
                    x++;
            }
            else
            {
                if(save[0]=='+')
                    x++;
                else
                    x--;
            }
        }
        printf("%d\n",x);
    }

    return 0;
}


 

B题  Painting Eggs

题意:n个蛋,两个人对每一个蛋涂漆都有一个价格,要使蛋都涂完,且两个人的付费差不超过500,问怎样分配这n个蛋。

解题思路:对每一个蛋进行贪心,如果如果给第一个人使得两人的差价低于给第二个人两人的差价,则把该蛋分给第一个人。

代码:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#define eps 1e-6
#define INF (1<<20)
#define PI acos(-1.0)
using namespace std;

char ans[1100000];

int main()
{
    int n;

    while(scanf("%d",&n)!=EOF)
    {
        int a=0,b=0,num=0;
        int temp1,temp2;

        while(n--)
        {
            scanf("%d%d",&temp1,&temp2);
            if(abs(a+temp1-b)<abs(b+temp2-a))
             {
                 ans[num++]='A';
                 a+=temp1;
             }
            else
            {
                ans[num++]='G';
                b+=temp2;
            }
        }
        ans[num]='\0';
        if(abs(a-b)<=500)
            printf("%s\n",ans);
        else
            printf("-1\n");
    }

    return 0;
}



 

C题   XOR and OR

题意:给两个0、1组成的字符串,可以从第一个字符串任取两个相邻的字符,通过抑或和或运算得到两个数代替取出的两个字符,问经过多次这样的操作以后能否得到第二个字符。

解题思路:找规律。11<->01或10   00<->00  它们之间是等价的。所以只要两串都含1且长度相等,一定可以转换。

代码:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#define eps 1e-6
#define INF (1<<20)
#define PI acos(-1.0)
using namespace std;



char save1[1100000],save2[1100000];
int main()
{

    while(scanf("%s%s",save1,save2)!=EOF)
    {
        bool flag1=false,flag2=false;
        int len1=strlen(save1),len2=strlen(save2);

        if(len1!=len2||(len1==1&&strcmp(save1,save2)))
        {
            printf("NO\n");
            continue;

        }

        for(int i=0;i<len1;i++)
            if(save1[i]=='1')
            {
                flag1=true;
                break;
            }
        for(int i=0;i<len2;i++)
            if(save2[i]=='1')
            {
                flag2=true;
                break;
            }
        if((flag1==false&&flag2==true)||(flag1==true&&flag2==false))
            printf("NO\n");
        else
            printf("YES\n");


    }

    return 0;
}


 

D题: Yet Another Number Game

题意:有n堆数(n<=3),有两种操作,操作一:把某一堆数减一个不大于它的数。操作二:把每一堆都减一个数m(1<=m<=min(所有数))。两人依次操作,每人都完美表现,最后不能做操作的输,问谁赢。

解题思路:当n=1时,如果数量大于0则先胜,否则先负。

当n=2时,Wythoff game.可以直接用公式,也可以用动归把所有的情况都列出来。

当n=3时,Nim game. 如果三个数的抑或为0(奇异点),则必输,否则为赢。

代码:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#define eps 1e-6
#define INF (1<<20)
#define PI acos(-1.0)
using namespace std;

int main()
{
    int n,a,b,c;

    while(scanf("%d",&n)!=EOF)
    {
       if(n==1)
       {
            scanf("%d",&a);
            if(a)
                printf("BitLGM\n");
            else
                printf("BitAryo\n");
       }
     
        if(n==2)
       {
           scanf("%d%d",&a,&b);
           bool dp[350][350];
           memset(dp,false,sizeof(dp));

           for(int i=1;i<=a;i++)
                dp[i][0]=true;
           for(int j=1;j<=b;j++)
                dp[0][j]=true;

           for(int i=1;i<=a;i++)
            for(int j=1;j<=b;j++)
            {
                int flag=0;
                if(i==j)  //采用第二种方法
                {
                    dp[i][j]=true;
                    continue;
                }
                else
                {
                    int Min=min(i,j);
                    for(int k=1;k<=Min;k++)
                        if(dp[i-k][j-k]==false)
                        {
                            dp[i][j]=true;
                            flag=1;
                            break;
                        }
                }
                if(flag==1)
                    continue;

                for(int k=1;k<=i;k++)  //采用第一种方法
                    if(dp[i-k][j]==false)
                    {
                        flag=1;
                        dp[i][j]=true;
                        break;
                    }
                if(flag==0)
                {
                    for(int k=1;k<=j;k++)
                        if(dp[i][j-k]==false)
                        {
                            dp[i][j]=true;
                            flag=1;
                            break;
                        }
                }
            }
            if(dp[a][b]==true)
                printf("BitLGM\n");
            else
                printf("BitAryo\n");

       }
       if(n==3)
       {
            scanf("%d%d%d",&a,&b,&c);
            if(a^b^c)
                printf("BitLGM\n");
            else
                printf("BitAryo\n");

       }

    }
    return 0;
}




E题  Sausage Maximization

题意:给n(n<=10^5)个数,然后让你求出最大的前p个数和后q个数的抑或和。

解题思路:用Trie树。贪心选择最大值。

//trie树与贪心
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#define eps 1e-6
#define INF (1<<20)
#define PI acos(-1.0)
using namespace std;

struct Node
{
    struct Node * son[2];
    long long data;
}*root;

long long save[110000];

struct Node * create()
{
    struct Node *p=(struct Node *)malloc(sizeof(struct Node));

    p->data=0;
    p->son[0]=p->son[1]=NULL;

    return p;
}

void insert(struct Node *cur,long long num)
{
    int bit[50];

    struct Node *temp=cur;

    for(int i=0;i<=40;i++)
        bit[i]=1&(num>>i);
    for(int i=40;i>=0;i--) //都保存为50位,无所谓是从低位还是从高位
    {
        if(temp->son[bit[i]]==NULL)
            temp->son[bit[i]]=create();
        temp=temp->son[bit[i]];
    }
    temp->data=num;
}

long long  query(struct Node *cur ,long long num)
{
    int bit[50];

    struct Node *temp=cur;

    for(int i=0;i<=40;i++)
        bit[i]=1&(num>>i);
    for(int i=40;i>=0;i--)  //从高位开始,贪心算法
    {
        if(temp->son[bit[i]^1])  //如果bit[i]=0 则应该选择son[1];如果bit[i]=1,则应该选择son[0]
            temp=temp->son[bit[i]^1]; //1与其他抑或得到它的反数
        else
            temp=temp->son[bit[i]];
    }
    return num^(temp->data);
}

int main()
{
    int n;


    while(cin>>n)
    {
        root=create();
        long long sum=0,ans=0;

        for(int i=1;i<=n;i++)
        {
            cin>>save[i];
            sum^=save[i];
            insert(root,sum);
            ans=max(ans,sum); //此时后缀为空
        }
        sum=0;
        for(int i=n;i>=1;i--)
        {
            sum^=save[i];
            ans=max(ans,query(root,sum));
        }
        cout<<ans<<endl;
    }
    return 0;
}




 

 

 

 

 
24、虚拟地理信息系统:技术与应用的全面解析 本文全面解析了虚拟地理信息系统(虚拟GIS)的技术架构与应用前景。文章从地理空间数据的增长出发,探讨了虚拟GIS在地形、建筑、天气等多维度数据的交互式可视化技术,重点介绍了全球层次结构、多分辨率模型、缓存分页机制及交互导航方法。系统已应用于天气分析、城市规划、应急响应等领域,并展望了未来在数据处理、模拟操作、移动可视化及智能城市、文化遗产保护等方向的发展路径与技术挑战。 阅读详情

相关推荐

Kill5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题

Kill5-5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题 问题简要描述: 昨日更新了keil5软件的版本,从5.17更新到了5.37版本,然后编译STM32项目文件时,软件提示编译报错。报错问题如下: Build started: Project: QKsoftware *** Using Compiler 'V6.18', folder: 'E:\MDK-ARM\ARM\ARM\ARMCLANG\Bin' Build target 'QKsoftware' compiling

weixin_43644424的博客 1万+

Codeforces Round #173 (Div. 2)总结

a题: 算是一个模拟题吧,就模拟++操作。 代码: #include #include #include using namespace std; int main() { int n; while(scanf("%d",&n)!=EOF) { int ans=0; char op[10]; for(int i=0;i<n;i++) { scan

z309241990的专栏 975

华为AR3260路由器NAT回流配置实战:从WEB界面到命令行的完整避坑指南

本文详细解析了华为AR3260路由器NAT回流(Hairpin NAT)的配置原理与实战方法。针对内网用户无法通过公网地址访问内部服务器的常见问题,文章不仅剖析了WEB界面配置的常见报错原因,更提供了清晰、可靠且一劳永逸的命令行(CLI)配置方案与排错指南,帮助企业网络工程师彻底解决内外网访问不一致的难题。

u6v7w8x的博客 874

Codeforces Round #173 (Div. 2) Problem B

B.Painting Eggs 题目大意是:J画了n个鸡蛋,分别可以买给A 和G,对于每个鸡蛋A 和G的出价都不同,但是要求,最后卖给A 和G 两人鸡蛋的差价不超过500; /* 题目很水,当时没看懂,所以没做出来,导致又扣了57分;o(︶︿︶)o 唉 要是每次的题目都是中文题就好了,这也应该是很多做codeforces 的中国学生的期待吧; 英语这块软肋怎么办呢...

weixin_30666753的博客 122

高效爬取懂车帝车型数据:从静态解析到动态反爬实战

本文详细解析了如何高效爬取懂车帝车型数据,从静态HTML解析到动态接口反爬的完整实战路径。文章重点介绍了使用浏览器开发者工具定位数据、应对CSS混淆与参数加密等反爬策略,并提供了整合静态与动态抓取逻辑的Python代码示例,帮助开发者稳健地获取结构化车型信息。

wind6的博客 937

SGLang HiCache实战:手把手教你配置KV Cache Offload,让大模型推理成本直降84%

本文详细介绍了SGLang HiCache在KV Cache Offload配置与调优中的实战应用,通过多级存储架构和智能卸载策略,显著降低大模型推理成本达84%。文章涵盖HiCache架构优势、环境配置、高级调优策略及生产环境最佳实践,帮助开发者优化GPU显存使用,提升并发处理能力。

weixin_29044713的博客 462

Codeforces Round #173 (Div. 2)

http://codeforces.com/contest/282 A:水,找到中间的算符,处理就行。 B: 话说比赛的时候竟然没有想法,无语了。给出n对数,ai,bi ;    ai + bi = 1000 ,求满足sa表示美对数取a的和与sb每对数取b的和之间的差值的绝对值小于等于500。对于每一对数要么取a,要么取b. 取A同A表示取b用G表示,输出最后的结果如果不存在输出-1 我们...

weixin_33928137的博客 132

【漏洞复现】7-Zip目录穿越漏洞(CVE-2025-11001)

摘要:CVE-2025-11001是7-Zip(v21.02-v24.09)Windows版处理ZIP包符号链接时的高危漏洞,攻击者可构造恶意ZIP文件实现目录穿越和任意文件写入。漏洞源于路径检查缺陷,当用户解压含特殊符号链接的压缩包时,可能将文件写入系统目录。复现利用GitHub公开的Python脚本(https://github.com/pacbypass/CVE-2025-11001)可生成攻击包,需注意该漏洞仅影响Windows且需要用户交互。

LongL_GuYu的博客 1608

Problem--282A--Codeforces--BIt++

BIt++time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard outputThe classic programming language of Bitland is Bit++. This language is so peculiar and co

qq_36667106的博客 1175

Arcgis建筑面shp由DSM和DEM获取高度拉伸并可视化

Arcgis建筑面shp由DSM和DEM获取高度拉伸并可视化

yilvyangguang520的博客 3991

在Ubuntu系统中安装和使用wxPython进行Python图形用户界面(GUI)开发

在本文中,我将向您展示如何在Ubuntu系统上安装和使用wxPython,并提供一些示例代码来帮助您开始使用这个强大的工具。在MyFrame的构造函数中,我们创建了一个wx.Panel和一个按钮,并将按钮的点击事件绑定到一个自定义的方法on_button_click上。最后,我们创建了一个wx.App的实例,创建了一个MyFrame对象并显示它,最后通过调用app.MainLoop()启动应用程序的主事件循环。这只是一个简单的示例,但它演示了如何使用wxPython创建一个基本的GUI应用程序。

qq_37934722的博客 1040

Educational Codeforces Round 173 (Rated for Div. 2) - Codeforces

签到题目。

2301_79248730的博客 718

第78篇:AI辅助创意与设计工作流——Logo、海报、UI的自动化生成与迭代(操作教程)

在广告公司和设计团队摸爬滚打几年,我见过太多设计师为一个Logo的配色、一张海报的版式反复修改到深夜。自从AI绘画工具爆发,我就一直在琢磨,怎么把这些“黑科技”真正塞进设计师的日常流水线里,而不是让它们仅仅是个玩具。今天要聊的,就是一套我实践下来,能真正提升效率的AI辅助创意与设计工作流。我们不谈颠覆,只谈增效——如何用AI快速完成Logo、海报、UI的灵感生成、批量出图与智能迭代,把设计师从重复劳动中解放出来,聚焦在真正的创意决策上。

weixin_37464284的博客 540

Educational Codeforces Round 173 (Rated for Div. 2)

总结:翻译插件用不了了,B题题意一直没看懂,C题出思路了好久才写出来,评价为太久没打了。

MenghuanL的博客 979

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Educational Codeforces Round 173 (Rated for Div. 2)(A-D)

补题

Vcoistnt的博客 978

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【CF】Day64——Educational Codeforces Round 173 (Rated for Div. 2) BCD (数论 | 最大连续子段 + 最大前后缀 | 数论)

7比较特殊,可以记一记直接上结论那么 1 和 5 可以直接判断,而 3 和 9 稍微有点特殊,由于其是位数之和能被 3/9 整除,我们假设有 k 位,也就是说只要满足 k * d % 3/9 == 0 即可 那么 d = 3/9 的情况可以直接出,其他情况就和 k 有关了,如果 k 中有 3 / 9 就行,那么 n 要满足什么条件呢?

qq_61422664的博客 927

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

贪心 Codeforces Round #173 (Div. 2) B. Painting Eggs

题目传送门 1 /* 2 题意:给出一种方案使得abs (A - G) <= 500,否则输出-1 3 贪心:每次选取使他们相差最小的,然而并没有-1:) 4 */ 5 #include <cstdio> 6 #include <cstring> 7 #include <iostream> 8 #i...

weixin_34292959的博客 83

【Codeforces Round #173 (Div. 2) 】Bit++

没有

2301_76869282的博客 131

Educational Codeforces Round 173 (Rated for Div. 2) A~D

算法:模拟 枚举思路:记录当前每个硬币大小 当每个硬币大小大于3时候 将硬币个数翻倍 再将每个硬币大小除以四 枚举直到硬币大小小于3时 输出硬币个数。

xiaolemyzq的博客 729

Codeforces Round 173 A. Coin Transformation(2043)

【代码】Codeforces Round 173 A. Coin Transformation(2043)

727

Educational Codeforces Round 171 (Rated for Div. 2) A~D

由于有这样一个优先级的事情,我们可以考虑队列,倒序枚举天数,如果当天能够购买商品就将价格先放入队列,如果不能购买商品就弹出一个能购买商品的价格,就是说一个0可以抵消一个1。思路:题目要求我们最多剩下一个数,那么显然对于偶数情况我们必须将序列内的数进行两两操作。那么对于奇数,我们就去枚举那个单独使用的数,注意枚举过程中需要确保左边和右边的数的个数都是偶数。思路:题目要求两条线段必须垂直,同时有一个值用来限定两条线段的长度,所以其实一定只能针对短的那条线段,短的那条线段的最大长度就是。天时,我们一定希望对第。

Fr1nGeLove的博客 1119
上一篇: 记忆化搜索 uva-10651-Pebble Solitaire
下一篇: 3维动态规划 hdu 4501 小明系列故事——买年货
Accagain
博客等级 码龄14年 376粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值