博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019CCSU第二次校赛部分题解(A,B,E,G)
阅读量:5747 次
发布时间:2019-06-18

本文共 3938 字,大约阅读时间需要 13 分钟。

A

签到题,考虑到数据范围很小直接枚举1,2,3分别取多少个就做完了

1 #define IO std::ios::sync_with_stdio(false); 2 #define bug(x) cout<
<<" "<
4 #define itor ::iterator 5 using namespace std; 6 #define pb push_back 7 typedef long long ll; 8 typedef double db; 9 const int N=1e6+10;10 int T,n,m,kase;11 int a[10],vis[100];12 int main(){13 scanf("%d",&T);14 while(T--){15 scanf("%d%d",&kase,&n);16 for(int i=1;i<=3;i++)a[i]=0;17 for(int i=1;i<=10;i++){18 int x;19 scanf("%d",&x);20 a[x]++;21 }22 int flag=0;23 for(int i=0;i<=a[1];i++){24 for(int j=0;j<=a[2];j++){25 for(int k=0;k<=a[3];k++){26 int res=i+j*2+k*3;27 if(res==n){28 flag=1;29 break;30 }31 }32 }33 }34 printf("%d ",kase);35 if(flag)printf("YES\n");36 else printf("NO\n");37 }38 }

B

首先对于这种很有可能是找规律的题,我们可以不去想dp啊

遇事不对先打表!

1 #define IO std::ios::sync_with_stdio(false); 2 #define bug(x) cout<
<<" "<
4 #define itor ::iterator 5 using namespace std; 6 #define pb push_back 7 typedef long long ll; 8 typedef double db; 9 const int N=1e6+10;10 int vis[100][2],k;11 int ans=0;12 int check(int x,int y){13 if(x<1||y<1||y>2)return 0;14 return 1;15 }16 int dx[10]={
0,0,1,-1};17 int dy[10]={
1,-1,0,0};18 void dfs(int x,int y,int h){19 if(h==k){20 ans++;21 return;22 }23 for(int i=0;i<4;i++){24 int x1=x+dx[i];25 int y1=y+dy[i];26 if(check(x1,y1)&&!vis[x1][y1]){27 vis[x1][y1]=1;28 dfs(x1,y1,h+1);29 vis[x1][y1]=0;30 }31 }32 }33 int main(){34 for(int i=1;i<=20;i++){35 memset(vis,0,sizeof(vis));36 ans=0;37 k=i;38 vis[1][1]=1;39 dfs(1,1,0);40 printf("i=%d: %d\n",i,ans);41 }42 }

dfs打表发现答案跟是前两项之和然后和奇偶性也有关,

然后这个题就很水了。。。

#define IO std::ios::sync_with_stdio(false);#define bug(x) cout<
<<" "<
#define itor ::iteratorusing namespace std;#define pb push_backtypedef long long ll;typedef double db;const int N=1e6+10;int T,k,n,mod=1e4+7;int a[10005];void init(){ a[1]=2,a[2]=3; for(int i=3;i<=1000;i++){ if(i%2){ a[i]=(a[i-1]+a[i-2]+1)%mod; } else a[i]=(a[i-1]+a[i-2])%mod; }}int main(){ init(); scanf("%d",&T); while(T--){ scanf("%d%d",&k,&n); printf("%d %d\n",k,a[n]); }}

E

有点恶心的题。。竟然没A出来

显然我们可以枚举正确时间,然后再拿时钟时间和误差时间去配对

配对我们可以排序然后一直扫一遍,注意输入输出的各种细节即可

#define IO std::ios::sync_with_stdio(false);#define bug(x) cout<
<<" "<
#define itor ::iteratorusing namespace std;#define pb push_backtypedef long long ll;typedef double db;const int N=1e3+10;int T,n,m,kase;int mod=720;int a[20],b[20],vis[20],d[20];char s[100];int main(){ scanf("%d",&T); while(T--){ scanf("%d%d",&kase,&n); for(int i=1;i<=n;i++){ int x,y; scanf("%d:%d",&x,&y); x%=12; x=x*60+y; a[i]=x; } for(int i=1;i<=n;i++){ scanf("%s",s); int len=strlen(s); int k=0; if(s[0]=='+')k++; int x=0,y=0,id; for(int j=1;;j++){ if(s[j]==':'){ id=j; break; } x=x*10+s[j]-48; } x%=12; for(int j=id+1;j
1)printf("%d\n",ans); else if(ans==0)printf("none\n"); else{ int x=t/60,y=t%60; if(x==0)printf("12:%02d\n",y); else printf("%d:%02d\n",x,y); } }}

G

这题不会写,看网友大佬题解看懂的

传送门:

转载于:https://www.cnblogs.com/ccsu-kid/p/10585393.html

你可能感兴趣的文章
Random类
查看>>
记java一次尴尬的@Override
查看>>
Linux 终端命令格式
查看>>
结构型模式——代理模式(七)
查看>>
PostMan使用教程(1)
查看>>
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中
查看>>
Python数据分析Numpy库方法简介(四)
查看>>
【Java例题】2.3 计算银行存款本息
查看>>
python itertools用法
查看>>
Codeforces round 1111
查看>>
部署用到的常用命令
查看>>
汉字转阿斯克马值
查看>>
采用dlopen、dlsym、dlclose加载动态链接库【总结】
查看>>
JavaScript原型链和instanceof运算符的暧昧关系
查看>>
dev LayoutControl布局控件
查看>>
HTML页面加载完成后执行的两种方法
查看>>
变换作图中的常用模板函数
查看>>
不等式中的一类易错题
查看>>
【9-20】vimtutor学习笔记
查看>>
ZJOI Round2游记
查看>>