2018湖南省赛B题“2018”

题面懒得敲了,反正看这篇博客的肯定知道题面。

比赛时想按约数的一些性质分情况讨论出公式然后在合并,结果单考虑矩阵里出现2018和1009(与2互质,1009出现次数等于2)出现的情况就写了一长串公式,还推了很久。在考虑1出现的综合情况就直接GG了。。

然后想到打表,奈何队友卡H题很久,最终因时间原因放弃来做B的时候已经冷静不下来了,没能打表成功,于是今天决定补一手打表。

我首先敲了dfs暴搜二维数组的,然后类比的(找了半天BUG)终于成功打出来了。。还是要好好练练打表,比赛卡这样的题真难受。

 1 #include<cstdio>
 2 #define ll long long
 3 ll tot;
 4 int a[]={2018, 1009 , 2, 1};
 5 int m[100][100];
 6 int n,k;
 7 inline int gcd(int a,int b){return b?gcd(b,a%b):a;}
 8 void dfs(int x,int y)
 9 {
10     if(x>=n){tot++;return ;}
11     for(int j=0;j<4;j++)
12     {
13         if(x>0&&gcd(m[x-1][y],a[j])!=a[j])continue;
14         if(y>0&&gcd(m[x][y-1],a[j])!=a[j])continue;
15         m[x][y] = a[j];
16         if(y+1==k)dfs(x+1,0);
17         else dfs(x,y+1);
18         if(!x&&!y)break;
19     }
20 }
21 int main()
22 {
23     while(~scanf("%d%d",&n,&k)){
24         tot = 0;
25         dfs(0,0);
26         printf("tot: %lld\n",tot);
27     }
28     return 0;
29 }

原文地址:https://www.cnblogs.com/llllrj/p/9588854.html

时间: 2024-08-30 14:46:04

2018湖南省赛B题“2018”的相关文章

浙江省赛真题2018

只做了签到题,菜就是菜,找啥理由: 但失败了总要得到一些教训: A - Peak ZOJ - 4024 题意:就是给你一个序列让你判断是不是先增加后减少的,签到: #include<bits/stdc++.h> using namespace std; #define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++) #define per(i,j,k) for(int i=(int)k;i>=(int)j;i--) #define pb pus

2018陕西省赛K题[watermelon_planting]

题意:有一个序列a[],描述的是另一个序列ans[]每个位置单位时间的增量.每个单位时间每个位置都会增加一个单位对应增量.时间总长m,每个单位时间包含有两种操作中的一个:1.询问ans[]在[l,r]区间的和:2.修改:a[]在[l,r]区间+1,即[l,r]区间的ans[]增量+1,a[i], n,m?≤?10^5 题解:当时脑抽没想出来,现在觉得好简单...考虑对每个位置,维护一个关于时间的一次函数y=a*x+b,y:是这个位置的答案,x:是时间,然后就维护两个系数a,b就可以了.维护的方法

2018山东省赛补题

题目链接 https://www.nowcoder.com/acm/contest/123/E 题解 https://www.cnblogs.com/Rubbishes/p/9074460.html #include <bits/stdc++.h> using namespace std; const int MAXN=1000005; int cnt[MAXN]; int main() { int t; while(~scanf("%d",&t)) { while

ACM-ICPC 2018徐州网络赛-H题 Ryuji doesn&#39;t want to study

C*M....死于update的一个long long写成int了 心累 不想写过程了 ******** 树状数组,一个平的一个斜着的,怎么斜都行 题库链接:https://nanti.jisuanke.com/t/31460 #include <iostream> #include <cstring> #define ll long long #define lowbit(x) (x & -x) using namespace std; const int maxn =

Heshen&#39;s Account Book HihoCoder - 1871 2018北京区域赛B题(字符串处理)

Heshen was an official of the Qing dynasty. He made a fortune which could be comparable to a whole country's wealth by corruption. So he was known as the most corrupt official in Chinese history. But Emperor Qianlong liked, or even loved him so much

2018高考数学真题权威专家评析+2019备考方向解读

2018高考数学真题汇总!权威专家评析+2019备考方向解读 "试卷稳中求新,在保持结构总体稳定基础上,科学灵活地确定试题内容,强调数学应用,突出关键能力."教育部考试中心命题专家认为,2018年高考数学卷一个突出的特点是,根据文理科考生数学素养综合要求,调整文理科同题比例,为新一轮高考数学不分文理科的改革进行了积极探索. 探索内容改革,助推素质教育 教育部考试中心命题专家介绍,根据文理科考生数学素养的综合要求,调整全国Ⅱ卷.全国Ⅲ卷文理科同题比例,为新一轮高考数学不分文理科改革进行了

2018阿里巴巴在线编程题

在其他博客上看到一道 "2018阿里巴巴在线编程题" 我记得题目大概是这样的:输入数据n(n>=6)代表n个数,从0-9任意输入n个数,然后在n个数选出6个数xx-xx-xx表示 时:分:秒,求出最小时间和最大时间,若时间无效,则输出时间无效,例如: 输入: 6 6 5 4 3 2 1 输出: 123456 235641 输入: 6 9 9 9 9 9 9 输出: 时间无效 看着有点意思,就自己做了一遍,输出格式自己美化了一下,没有严格按照题目要求.代码如下: def find_

福州大学第十五届程序设计竞赛_重现赛B题迷宫寻宝

Problem B 迷宫寻宝 Accept: 52    Submit: 183Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description 洪尼玛今天准备去寻宝,在一个n*n (n行, n列)的迷宫中,存在着一个入口.一些墙壁以及一个宝藏.由于迷宫是四连通的,即在迷宫中的一个位置,只能走到与它直接相邻的其他四个位置(上.下.左.右).现洪尼玛在迷宫的入口处,问他最少需要走几步才能拿到宝藏?若永远无法拿到宝藏,则输出-

sdut 2413:n a^o7 !(第三届山东省省赛原题,水题,字符串处理)

n a^o7 ! Time Limit: 1000MS Memory limit: 65536K 题目描述 All brave and intelligent fighters, next you will step into a distinctive battleground which is full of sweet and happiness. If you want to win the battle, you must do warm-up according to my inst