题目传送门

A. Exercising Walk

刚开始一看,cf,div2的A题居然这么长,是很难么,结果仔细才发现这就是一道水题,div2A题的通性就是判断。题目的大概意思就是主人公养了一只猫,这天想让这只猫在一个矩阵里面走动,且不能超出矩阵,是否能完成训练。那么我们可以把上下走动抵消掉只看成向下或者向上走,向左向右同理,而这里只需要一个特判,即矩阵的行或者列只有1格,但猫不需要向上或下走
主要代码如下:

int T;cin>>T;while(T--){bool flag1 = false,flag2 = false;//分别判断猫是否能左右走和上下走int a,b,c,d;cin>>a>>b>>c>>d;int x,y,x1,y1,x2,y2;cin>>x>>y>>x1>>y1>>x2>>y2;int cc = b-a,rr = d-c;//猫向左or右,走上or下。//特判是否本身就不需要左右走if(a+b){//判断矩阵列是否只有一格if(x2-x1!=0&&x1<=cc+x&&x2>=cc+x)flag1 =true;}else flag1 = true;//特判是否本身就不需要上下走if(c+d){if(y2-y1!=0&&y1<=rr+y&&y2>=rr+y)flag2 = true;}else flag2 = true;if(flag1&&flag2)cout<<"YES\n";else cout<<"NO\n";}

B.Composite Coloring

这题的大致意思就是,给你一些合数,要你把他们涂上颜色,总共可以用的颜色种类不能超过11种,且所用的颜色的编号必须连续,不能中断,且gcd(a,b)!=1的可以涂上相同或者说不同颜色。那由唯一分解定理我们可以知道,任何一个合数都可以分解成若干个素数相乘,颜色种类不能超过11种即素数的数目不超过11个,那么就可以暴力从小到大枚举每个合数的质因子,并给枚举到的质因子附上编号,按出现的先后顺序赋值,这样就不会中断。
主要代码如下:

int b[1005];
int T;cin>>T;const int primes[]{2,3,5,7,11,13,17,19,23,29,31};//11个由小到大的质因子int col[32];//质因子最大为31,初始全部赋值为零while(T--){int cnt =0;int n;cin>>n;int ans = 0;//统计用了几种颜色for(int i = 0;i<32;++i)col[i]=0;for(int i =0;i<n;++i){cin>>b[i];for(int j = 0;j<11;++j){//判断是否能被这个质因子整除,若能,染色退出if(b[i]%primes[j]==0){//判断质因子是否在之前出现过if(!col[primes[j]]){++ans;col[primes[j]] = ++cnt;b[i] = col[primes[j]];}else b[i] = col[primes[j]];break;}}}cout<<ans<<'\n';for(int i =0;i<n;++i)cout<<b[i]<<" \n"[i==n-1];}

C.K-Complete Word

题意大概就是,给你一个长度为n字符串,要你更改其中的一些字符,使其能变成一个回文串,且是一个周期为k的周期串,求更改字符的最小数目。
预处理+贪心
首先我们要让这个串变成一个周期为k的回文串的话,那么将这个串分为n/k段,每一段都要是回文串,我们只需要统计一下每一段对应的每一位中,每种字符的贡献,再将这一整串看成一段长度为k的字符串,因为这是一个回文串,所以从两端开始遍历,贪心去求,求出贡献最大的字符,用n/k*2-贡献即为这一位对应的所有段需要更改的字符数,要注意段长为奇数偶数的情况。(每次不要用memset去清零统计数组,笔者深受memset毒害 )
主要代码如下:

const int INF = INT_MAX;
const int N = 2e5+5;
int cnt[N][26]
int T; cin >> T;while (T--) {int k, n; cin >> n >> k;string s; cin >> s;int cut = n / k;//一共有多少段//手动清零统计数组for(int i =0;i<n;++i){for(int j = 0;j<26;++j)cnt[i][j]=0;}//统计每一段对应的位上,每种字符的贡献for(int i = 0;i<n;++i) {cnt[i % k][s[i] - 'a']++;//i%k的原因是因为,将一串化为一段}ll ans = 0;//两端开始遍历for (int i = 0, j = k - 1; i <= j; i++, j--) {int ma = -INF;//遍历26个字符,取贡献最大的for(int k = 0;k<26;++k){int cost = cnt[i][k]+(i==j?0:cnt[j][k]);//段长为奇数时,会同时遍历到中间ma = max(ma,cost);}if(i==j)ans += cut - ma;else ans += cut*2 - ma;}cout << ans << '\n';}

D.Walk on Matrix

粗略的一看,哇,这题dp,不想写了。
这题的题意,确实和dp有关,但是实现的时候,不关dp的事
他给了你一个矩阵nxm,矩阵的每个格子都有权值,玩家的初始分数是 a 1 , 1 a_{1,1} a1,1​,然后从 a 1 , 1 a_{1,1} a1,1​开始,每一步只能向下或者向右走,走到 a n , m a_{n,m} an,m​,每走一格,玩家的分数为(自身的&该位置的权值),求玩家可获得最大的分数,题目给出了dp的算法,但这个算法是错的,要求你构造一个矩阵,使正确答案的值与错误答案的值相差为k.
如果说用dp来写这道题,必然会出现忽略了更大的值这种情况,因为按位取与和直接相加是不一样的,你可能取与的时候,忽略了更大位数的值。解题大致思想就是诱导致使其只能获得你的值
因为k<1e5 则我们可以取一个k达不到的数base = 1<<17(二进制数位中,base只有一个1)
如下矩阵

 base+k base   kk      base+k k

主代码如下:

int k;cin>>k;
int inf = 1<<17;
cout<<2<<' '<<3<<'\n';
cout<<inf+k<<' '<<inf<<' '<<k<<'\n';
cout<<k<<' '<<inf+k<<' '<<k<<'\n';

新人第一次写题解,可能会有些地方有问题,请大家指出=3=

CF-Round#630 A-D相关推荐

  1. Codeforces Round #630 (Div. 2) F. Independent Set 树形dp

    传送门 文章目录 题意: 思路: 题意: 给你一棵树,求这棵树的边导出子图中独立集的数量和,独立集大小可以为000. 思路: 先考虑普通的独立集数量怎么求,无非就是分情况讨论一下选根还是不选根,而这个 ...

  2. Codeforces Round #630 (Div. 2) E. Height All the Same 排列组合

    传送门 文章目录 题意: 思路: 题意: 思路: 由于n,mn,mn,m都很大,不难猜到这是一个公式题. 首先化简题目中的两个操作,第二个操作就是可以让奇偶性相同的位置的高度相同.第一个操作虽然是改变 ...

  3. 【codeforces】【比赛题解】#915 Educational CF Round 36

    虽然最近打了很多场CF,也涨了很多分,但是好久没写CF的题解了. 前几次刚刚紫名的CF,太伤感情了,一下子就掉下来了,不懂你们Div.1. 珂学的那场我只做了第一题--悲伤. 这次的Education ...

  4. 【codeforces】【比赛题解】#849 CF Round #431 (Div.2)

    cf的比赛越来越有难度了--至少我做起来是这样. 先看看题目吧:点我. 这次比赛是北京时间21:35开始的,算是比较良心. [A]奇数与结束 "奇数从哪里开始,又在哪里结束?梦想从何处起航, ...

  5. cf Round 613

    A.Peter and Snow Blower(计算几何) 给定一个点和一个多边形,求出这个多边形绕这个点旋转一圈后形成的面积. 保证这个点不在多边形内. 画个图能明白 这个图形是一个圆环,那么就是这 ...

  6. 【codeforces】【比赛题解】#937 CF Round #467 (Div. 2)

    没有参加,但是之后几天打了哦,第三场AK的CF比赛. CF大扫荡计划正在稳步进行. [A]Olympiad 题意: 给\(n\)个人颁奖,要满足: 至少有一个人拿奖. 如果得分为\(x\)的有奖,那么 ...

  7. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)

    终于打了一场CF,不知道为什么我会去打00:05的CF比赛-- 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...

  8. cf Round#779 D 388535

    前言: 这个方法挺慢的,不如其他大佬们的方法(但是我看不懂他们写的),所以自己来搞个.最坏的情况是n^2的复杂度,但是基本到不了最坏的情况.而且可以D1,D2两题通用! 核心思想: 假设 l^x=a1 ...

  9. 【codeforces】【比赛题解】#851 CF Round #432 (Div.2)

    cf真的难-- 点我浏览丧题. [A]Arpa和她对墨西哥人浪的研究 Arpa正在对墨西哥人浪进行研究. 有n个人站成一排,从1到n编号,他们从时刻0开始墨西哥人浪. 在时刻1,第一个人站起来. 在时 ...

  10. CF Round#240题解

    第一次参加CF的比赛,MSK19.30,四个小时的时差真心累,第一次CODE到这么夜-- 一开始做了A,C两题,后来做B题的时候我体力和精神集中度就很低了,导致一直WA在4-- 今天起床后再刷B,终于 ...

最新文章

  1. 早餐组合(购买方案)
  2. pta 哈利·波特的考试
  3. 用户画像从0到100的构建思路
  4. 第一季度Teradata营收下降7.3% 利润下跌63%
  5. VB 6.0中如何访问EXCEL 2007及EXCEL 2010
  6. 脚本类恶意程序分析技巧汇总
  7. php修改音频文件_解析用PHP读写音频文件信息的详解(支持WMA和MP3)
  8. Jenkins中连接Git仓库时提示:无法连接仓库:Error performing git command: git ls-remote -h
  9. 财付通接口(asp)
  10. 三种SQLServer分页查询语句笔记
  11. Delta架构:统一Lambda架构并利用Hadoop / REST中的Storm
  12. Linux下grep、egrep及fgrep命令详解
  13. Xtreme Report为windows开发者提供一个完善的类似于Outlook 2003报表的风格
  14. 如何安装uclient_uclient软件
  15. 陕西西安职高计算机学校有哪些,2019西安中职学校名单(含公办与民办名单)...
  16. 注册控件失败之一:提示0x80040200错误的处理办法
  17. 技术岗的职业规划_银行信息技术岗职业规划范文
  18. 计算机解释英文缩写x,计算机组成原理英文缩写解释
  19. 智能路由器-OpenWRT 系列六 (远程迅雷离线下载)
  20. 企业证书,不上app store的ipa下载方式

热门文章

  1. 软件工程作业三:患者监护系统
  2. linux7的yum源装不上怎么办,RHEL7解决无法使用YUM源问题
  3. 【图像分割】基于FLICM算法实现图像分割含Matlab源码
  4. 字体、图标字体、行高、文本样式(css)
  5. gurobi使用系列之一——gurobi+Python的实例使用(简单整数规划)
  6. WAP和web app的对比
  7. matlab 传字符串,在Simulink中将字符串传递给MATLAB函数
  8. nodejs用xlsx导出excel表
  9. Unity webgl发布微信小游戏
  10. 中国有哪些海洋物探招投标网站