哈尔滨工程大学ACM预热赛
Problem A
https://ac.nowcoder.com/acm/contest/554/A
题解:
找规律
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=100+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v;
int ans[N],cnt,flag,temp,sum;
int a[N][N][N*N];
char str;
struct node{};
void add (int b[],int c[]){int x=max(b[0],c[0]);for(int i=1;i<=x;i++){b[i]=b[i]+c[i];}for(int i=1;i<=x+100;i++){if(b[i]>=10){b[i+1]+=b[i]/10;b[i]%=10;}if(b[i]){b[0]=max(b[0],i);}}}
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){scanf("%d",&n);a[1][1][0]=1;a[1][0][0]=1;a[1][1][1]=1;a[1][0][1]=1;for(int i=2;i<=n;i++){a[i][0][0]=1;a[i][0][1]=1;for(int j=1;j<=i;j++){for(int k=0;k<=j;k++){add(a[i][j],a[i-1][k]);}//printf("%d%c",a[i][j]," \n"[i==j]);}}ans[0]=1;for(int i=1;i<=n;i++){add(ans,a[n][i]);}for(int i=ans[0];i>=1;i--)printf("%d",ans[i]);cout<<endl;//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
Problem B
https://ac.nowcoder.com/acm/contest/554/B
题解:
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=10+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v;
int ans,cnt,flag,temp,sum;
int a[N][N];
char str;
struct node{};
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);scanf("%d",&t);while(t--){//scanf("%d",&n);for(int i=0;i<3;i++){for(int j=0;j<3;j++){scanf("%d",&a[i][j]);}}ans=a[0][0]*a[1][1]*a[2][2]+a[1][0]*a[2][1]*a[0][2]+a[2][0]*a[0][1]*a[1][2]-a[0][2]*a[1][1]*a[2][0]-a[1][2]*a[2][1]*a[0][0]-a[2][2]*a[0][1]*a[1][0];cout<<(ll)ans*ans<<endl;}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
Problem C
https://ac.nowcoder.com/acm/contest/554/C
题解:快速幂
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=100000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v;
int ans,cnt,flag,temp,sum;
int a,b;
char str;
struct node{};
int PowerMod(int a, int b, int c){int ans = 1;a = a % c;while(b>0){if(b % 2 == 1)ans = (ans * a) % c;b >>= 1;a = (a * a) % c;}return ans;
}int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);scanf("%d",&t);while(t--){scanf("%d%d%d",&a,&n,&b);cout<<PowerMod(a,n,b)<<endl;}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
Problem D
https://ac.nowcoder.com/acm/contest/554/D
题解:
Problem E
https://ac.nowcoder.com/acm/contest/554/E
题解:朴素
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=100000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v;
int ans,cnt,flag,temp,sum;
int a,b,c,y;
char str;
struct node{};
bool check(int y){return y%4==0&&y%100!=0||y%400==0;
}
int mo[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){while(~scanf("%d%d%d%d",&a,&b,&c,&y)){int week=1;int num=1;ans=0;int year,month,day;for(int i=1850;i<=y;i++){int f=check(i);for(int j=1;j<=12;j++){num=0;for(int k=1;k<=mo[f][j];k++){week++;if(week>7)week=1;if(week==c)num++;if(i==y&&j==a&&b==num&&week==c){ans=1;year=i;month=j;day=k;break;}}}}if(ans){printf("%d/",year);if(month<10)printf("0%d/",month);elseprintf("%d/",month);if(day<10)printf("0%d\n",day);elseprintf("%d\n",day);}else{cout<<"none"<<endl;}}//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
Problem F
https://ac.nowcoder.com/acm/contest/554/F
题解:
Problem G
https://ac.nowcoder.com/acm/contest/554/G
题意:原题 求区间内 能被 自己每位上的和整除(即模 ==0)的个数
题解:
枚举每位上的和 MOD 取值[1,81]
就转化为 区间内 能被 MOD整除以及 每位上的和等于MOD 的个数
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <cmath>
using namespace std;
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <set>
#include <map>
#define cler(arr, val) memset(arr, val, sizeof(arr))
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define IN freopen ("in.txt" , "r" , stdin);
#define OUT freopen ("out.txt" , "w" , stdout);
typedef long long LL;
const int MAXN = 510011;
const int MAXM = 6000010;
const int INF = 0x3f3f3f3f;
const LL mod = 2147483647;
const double eps= 1e-8;
const double pi=acos(-1.0);
#define lson l,m, rt<<1
#define rson m+1,r,rt<<1|1
int f[10][82][82][82];
int dig[12],len;
//f[i][sum][mod][nowmod];
int dfs(int pos,int sum,int mod,int nowmod,int limit)
{if (pos<0)return sum==nowmod&&mod==0;if (!limit&&f[pos][sum][mod][nowmod]!=-1)return f[pos][sum][mod][nowmod];int res=0;int last=limit?dig[pos]:9;for (int i=0;i<=last;i++){int temp=(mod*10+i)%nowmod;res+=dfs(pos-1,sum+i,temp,nowmod,limit&&(i==last));}if (!limit) f[pos][sum][mod][nowmod]=res;return res;
}
int solve(int n)
{len=0;while(n){dig[len++]=n%10;n/=10;}int ans=0;for(int i=1;i<=81;i++)ans+=dfs(len-1,0,0,i,1);return ans;
}
int main()
{int n,cas=1;cler(f,-1);cin>>n;while(n--){int a,b;cin>>a>>b;if(a>b) swap(a,b);printf("Case %d: %d\n",cas++,solve(b)-solve(a-1));}return 0;
}
Problem H
https://ac.nowcoder.com/acm/contest/554/H
题解:欧拉筛
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=1000000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v,a,b;
int ans,cnt,flag,temp,sum;
int pre[N];
bool prime[N];
int d[N];
int num[N];
char str;
struct node{};
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);prime[0]=prime[1]=1;d[1]=1;for(int i=2;i<N;i++){if(prime[i]==0){pre[++cnt]=i;d[i]=2;num[i]=1;}for(int j=1;j<=cnt&&i*pre[j]<N;j++){prime[i*pre[j]]=i;d[i*pre[j]]=d[i]*d[pre[j]];num[i*pre[j]]=1;if(i%pre[j]==0){num[i*pre[j]]=num[i]+1;d[i*pre[j]]=d[i]/(num[i*pre[j]])*(num[i*pre[j]]+1);break;}}//cout<<phi[i]<<endl;}scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&a,&b);ans=0;for(int i=a;i<=b;i++){if((d[i])%2==0){ans++;}}cout<<ans<<endl;}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
Problem I
https://ac.nowcoder.com/acm/contest/554/I
Problem J
https://ac.nowcoder.com/acm/contest/554/J
哈尔滨工程大学ACM预热赛相关推荐
- 哈尔滨工程大学ACM预热赛(A,C,H,I)
A: 链接:https://ac.nowcoder.com/acm/contest/554/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65 ...
- 广东工业大学acm校赛总结(基础差的人的自我觉悟)
2022.03.27 广东工业大学acm校赛总结: 实话说,这次校赛表现非常不好,B题的钩子就差一点点,分块了,也知道%k也知道分奇数偶数,就是最后差一个特判不知道怎么解决,寥寥草草一个三等奖,练了这 ...
- 大连海事大学ACM校赛题解
大连海事大学ACM校赛题解 感谢xzx对题目的排版~ 作为出题人之一,我先简单说一下我认为的题目难度. 我觉着第一档比较容易的签到题是L.J.M,L就是向下取整的签到:J是简单思维.构造题,到了6以后 ...
- ICPC 山东省省赛刷题 第十七届哈尔滨工程大学ACM程序设计竞赛 牛客 AKE题 补题
A:As long as I was by her side 题意:连续三个人的高度和是三的倍数,就说这三个人是"挺好的",一组数据进行排序,要求最多"挺好的" ...
- 中国石油大学ACM俱乐部开放训练赛
文章目录 中国石油大学ACM俱乐部开放训练赛 A. sciorz画画(凸多边形最优三角型剖分,区间DP) B. 奎奎发红包(贪心) C. 关于我转生变成史莱姆这档事(DFS) F. 求和(矩阵构造+矩 ...
- 记2020年(第16届)湖南ACM省赛
记2020年(第16届)湖南ACM省赛 写在前面 我很喜欢<龙族>里那个叫路明非的衰小孩.虽然我也不知道为什么要说这个,逃 这个世界有多大,取决于你认识的人,你每认识一个人,世界对你来说就 ...
- 哈尔滨工程大学学生郭天祥六年非一般的大学
致阅读本书的大学生朋友 在哈尔滨工程大学六年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备:在与众多电子爱好者的交流中,使我学到了更多的专业知识:在学校老 ...
- 郭天祥六年非一般的大学--哈尔滨工程大学学生
人才是被逼出来的,人才是可以逼出来的,需要的就是乐观的人生态度和一如既往的信念和毅力. 致阅读本书的大学生朋友 在哈尔滨工程大学六年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的 ...
- 一个彻彻底底的水军的ACM校赛感悟~~~
2017年4月23日刚刚结束了ACM校赛.作为一名不是ACM队的水军来说,抱着必突突突的决心,参加了这次的比赛.经过五个小时的激烈角逐,我们队伍还参加了一场和我们没有什么关系的颁奖典礼. 我是一个编程 ...
最新文章
- 上传文件按钮美化,上传文件前后状态控制
- pat 乙级 1022 D进制的A+B(C++)
- 缺失值和异常值的识别与处理_识别异常值-第一部分
- 华尔街顶级大师胡立阳名言
- 容器编排技术 -- Kubernetes 为 Namespace 设置最小和最大内存限制
- mysql计算折纸_mysql数据库的创建和授权
- [HNOI2005]狡猾的商人 带权并查集
- 4.1 Spark SQL概述
- 计算机无故重启是什么原因,事实:无缘无故重新启动计算机有什么问题?计算机无故重启的原因和解决方法...
- PHP ASCII 排序方法
- Spring之声明式事务控制(九)
- Large scale evolutionary optimization using cooperative coevolution
- 武汉大学计算机学院2010情景剧,武汉大学金秋情景剧大赛精彩落幕(组图)
- BNUOJ 4140 Video Game Troubles
- 如何在cmd命令行窗口打开QQ
- 【Spring入门】
- 【Web编程实践课第二次作业】体育新闻世界
- 微信小程序(模板消息)
- wincc工程组态论文_WinCC与S7-1500 R/H冗余系统的通信解析
- 群晖5.2php核心设置_求救!群晖dsm系统如何才能找到并设置php.ini文件
热门文章
- python中cumsum_python numpy中cumsum的用法详解
- Android什么是函数,什么是函数响应式编程(JavaAndroid版本)
- pb 修改数据窗口种指定字段位置_第三章 Python数据类型 容器
- 依赖注入底层反射原理_Spring中反射与反射的原理(转载)
- 计算机专业的校本教材,[中职计算机专业校本教材建设思路与实践]中职计算机专业课程...
- 【机器学习算法专题(蓄力计划)】七、机器学习中数据的相关分析
- 二、HDFS基本架构和shell操作
- 计算机组成原理译码器选择,计算机组成原理第三章习题参考解析.doc
- 四川师范学院C语言实验报告,C语言【四川师范大学文理学院吧】_百度贴吧
- 迁移学习之域自适应理论简介(Domain Adaptation Theory)