hhuoj1054_撸猫狂魔

本文介绍了一道趣味编程题“撸猫狂魔”,题目要求通过一系列操作改变网格图中猫的颜色,并最终计算出网格的黑色值。博主分享了解题思路及AC代码,采用记录行和列操作次数的方法简化问题。

hhuoj1054_撸猫狂魔


hhuoj1054

描述:

zyyyyy是一个二刺猿。虽然他没有九十八亿,但是他坚信可爱即正义,所以他特别喜欢撸猫。
今天他为了让猫乖乖的被撸带了很多很多猫粮,猫粮被摆成网格图,于是一大群白猫为了吃猫粮也成了网格图。
等它们吃的开心了zyyyyy就开始撸她们。当他撸某只猫的时候,这只猫所在的行和列的猫虽然在吃东西但还是会被吓得变色(白猫变黑猫,黑猫变白猫),而这只猫因为惊吓过度就变了两次色(相当于不变色)。
撸了k次以后zyyyyy心满意足,不过现在他想知道自己闯了多大的祸。。。因为原来这些猫都是白的,现在有很多变成黑的了。定义整个网格图的黑色值等于所有行的黑色值相乘,一行的黑色值是这行黑猫的个数。不过黑色值可能太大了,为了避免他倍受打击我们还是告诉他黑色值模1000000007的值吧。。。

输入:

第一行三个整数,n,m,k。表示行数,列数,撸猫次数。
接着k行每行两个整数,x,y。表示这次撸的是x行y列的猫 (可以重复撸)
n,m <= 1000
k <= 500000
1<=x<=n
1<=y<=m

输出:

一个整数,表示黑色值模1000000007的值。

样例输入:

5 4 2
3 3
3 2

样例输出:

32

思路

  • 一开始,T了一发。复杂度搞错了,想的是记录每个地方的撸猫次数,偶数就不管,奇数就表示撸猫一次,然后更新行列。。。

  • 后面用了一个r[maxn]和c[maxn],分别记录该行和该列的撸猫次数。

  • 然后看每一个位置的时候,就只需要看该行该列的撸猫次数和是否为奇数,如果为奇数,并且该位置为黑猫。

  • 不用管撸猫位置猫变两次,因为r[x-1]和c[x-1]都加1,那么此位置是相当于加了一偶数,无影响。


AC代码

    #include<iostream>  
    #include<cstdio>  
    #include<cstring>
    #define mod 1000000007
    using namespace std;

    const int maxn = 1010;  
    int r[maxn], c[maxn]; 
    long long k, n, m, ans, x, y, i, j, tmp;    
    int main()  
    {  
        memset(r,0,sizeof(r));
        memset(c,0,sizeof(c));
        scanf("%lld%lld%lld",&n,&m,&k);  

        while(k--)  
        {    
            scanf("%d%d",&x,&y);  
            r[x-1] ++;  
            c[y-1] ++;  
        }  

        ans = 1;
        for(i = 0;i < n;i ++)  
        {  
            tmp = 0;  
            for(j = 0; j < m ;j ++)  
            {  
                tmp += (r[i] + c[j]) % 2;  
            }  

            ans = ans * tmp % mod;  
        }  

        printf("%lld\n",ans);
        return 0;  
    }  
### 点赞自动化脚本或点赞机器人的实现方式 #### 技术选型与框架 对于点赞自动化脚本或机器人,可以采用多种编程语言和技术栈来实现。如果目标平台是微博,则可以选择基于PHP开发的工具集[^1];而针对抖音、小红书等其他社交媒体平台,Python结合WebDriver是一个常见的解决方案[^2][^3]。 #### 实现细节 以下是几种常见场景下的具体实现: 1. **微博点赞机器人** 使用PHP编写的微博机器人可以通过OAuth认证访问API接口完成操作。例如,“Retweet Bot”能够监听并处理指定话题的内容,类似的逻辑也可以扩展至点赞行为。通过调用微博开放平台提供的RESTful API接口发送请求即可达成目的。 ```php $url = 'https://api.weibo.com/2/attitudes/create.json'; $params = array( 'access_token' => 'your_access_token', 'id' => 'status_id', // 微博ID ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); $response = curl_exec($ch); curl_close($ch); ``` 2. **抖音与小红书点赞机器人** Python配合Selenium WebDriver能模拟真实用户的浏览器交互动作,在这些平台上执行诸如浏览页面、查找元素和点击按钮的任务。此方法适用于那些未公开官方API或者现有API权限不足的情况。 对于小红书而言,除了基本的点赞外,还可以进一步构建完整的生态链路——从数据抓取到内容创作再到最终分发全过程都可由程序驱动完成[^3]。 ```python from selenium import webdriver driver = webdriver.Chrome() driver.get('https://www.xiaohongshu.com/') like_button = driver.find_element_by_css_selector('.like-icon') if like_button.is_displayed(): like_button.click() driver.quit() ``` #### 安全性和合规性注意事项 尽管上述方案可行,但在实施过程中需特别注意以下几点: - 遵守各社交网络的服务条款(SoT),避免因违规而导致账户被封禁; - 谨慎对待个人隐私保护问题,确保收集的数据仅限必要范围且妥善保管; - 如果涉及第三方库或服务,请确认其合法性及稳定性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值