自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Atcoder beginner contest 189

跳转题目题目大意:给你n个逻辑运算符(and,or),求有多少个n+1元组能使得经过n次计算后结果为true。思路:对于第i次运算,我们能够考虑到:(true,false的数目分别为num1,num0)如果运算符为or,计算结果为:num1=2 ∗*∗ num1+num0;num0=num0 ∗*∗ 1;如果运算符为and,计算结果为:num0=2 ∗*∗ num0+num1;num1=num1 ∗*∗ 1;然后模拟就行了,细节看代码。#include <iostrea

2021-01-24 11:39:31 175 1

原创 Atcoder beginner contest 172 D (加强版)

题目链接:https://atcoder.jp/contests/abc172/tasks/abc172_d题目大意:f(x):x因素的个数,求 ∑k=1nk∗f(k)\sum_{k=1}^nk*f(k)∑k=1n​k∗f(k)的值。思路:原题3s可以直接暴力。(数据加强到n<=1e8)我们考虑对于每个数对于答案的贡献。举个例子,对于1来说,可以被整除的数是 1~n,故1的时候对于答案贡献的价值为∑k=1nk\sum_{k=1}^nk∑k=1n​k,换句话说贡献值为能整除该数的数值。所以推出

2020-08-23 22:02:59 172

原创 Atcoder beginner contest 175D

题目链接:https://atcoder.jp/contests/abc175/tasks/abc175_d题目大意:从每个框开始,框上有索引,就得到改框的价值C,框可以移动k次,问从每个框都出发,中途能得到的最大价值。题解:我们一眼望去就能想到的就是暴力,很明显的就是会t掉,我们注意到n远远小于k,且索引是1到n的排序,很明显一定能得到循环节,且循环节的大小一定小于等于n。注意点:在计算过程中有一种特殊情况我们需要注意:循环n次,可能比循环n-1次要差。然后我们模拟就能愉快的ac了,细节看代码

2020-08-16 19:56:27 260

原创 Atcoder beginner contest 175 E题解

题目链接:https://atcoder.jp/contests/abc175/tasks/abc175_e题目大意:有k个有价值的物品分布在R*C的地图中,从(1,1)位置走到(r,c)位置,如果该位置有物品可以选择是否得到,每行最多能够选择得到三个物品。问到(r,c)位置能得到最大的价值。思路:如果不加一个每行最多能捡起三个物品的限制条件,就是我们很熟悉的dp题。但是加了一个限制条件,dp的状态我们就要增加一维来维护。所以状态dp[i][j][k]:表示在位置(i,j)且在该行已经挑选k个物品

2020-08-16 16:23:23 906

原创 Atcoder beginner contest 045 D题题解

题目链接:https://atcoder.jp/contests/abc045/tasks/arc061_b题目大意:有hw的网格初始都是白格,选n个将其染成黑色,求3x3的子网格包含黑色网格为0~9的个数。题目思路:该题h,w范围较大故不能直接暴力求解。3x3的矩阵总和为(h-2)(w-2),对于一个黑色格可以影响的矩阵为9个,注意到n较小,所以我们最多只需要记录9*n个矩阵,用map很好的解决问题。注意:边界问题。细节看代码#include <bits/stdc++.h>usi

2020-07-22 17:51:26 179

原创 AIsing Programming Contest 2020 D题解

题目链接:https://atcoder.jp/contests/aising2020/tasks/aising2020_d题目大意:给一个长度为n的01串,对于i位置进行反转(0转1,1转0);f(x): x转换成2进制时1的个数y,x=x%y,当x==0时循环的次数。求解i(0~n-1)将i反转后01串转换成10进制x,求f(x)的值。思路:01串总长度为2e5,故能想到取一次%mod后这个值一定在2e5范围内。然后就可以暴力求得结果了。问题是怎么去取第一次mod呢?显然每次处理一次情况的话1

2020-07-12 10:22:06 298

原创 __int128的那些事

众所周知biginteger用c++比较难受,对于这种情况比如java,python方便不少,但有128位整数类型很好的帮助我们解决这类问题。注意事项:128位的范围3.4e+38。换句话说如果数据很大的话还是会死,所以我们对范围要预先有个估计。GCC提供俩种128位整数类型 ,分别是__int128和__uint128_t,代表有符号位和无符号位128位整数。特别的注意的是这种大整数IO是不认识的所以我们需要自己手写一个read()和write()函数去实现。注意点,一般来说在本地运行都完成不了编译

2020-07-10 18:05:10 1985

原创 Atcoder beginner contest 173 E 题解

题目链接 https://atcoder.jp/contests/abc173/tasks/abc173_e题意:求从n个数选出k个数的乘积结果%1e9+7。思路:对于多个数的乘积想要结果最大,在满足绝对值最大的情况下要满足包含偶数个负数。情况1:对于所选的数是奇数时,首先就取一个最大正数,接下来就是俩个正数积和俩个负数积取最大。特殊情况2:当总正数数量为0,且选择数量为奇数时结果一定为负,这时要想结果最大就要取k个绝对值最小的数。然后就可以愉快的ac了。(细节看代码)#include <

2020-07-06 13:33:12 383

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除