文章目录
- 试题 A: 握手问题
- 试题 B: 小球反弹
- 试题 C: 好数
- 试题 D:R 格式
- 试题 E:宝石组合
- 试题F:数字接龙
- 试题G:爬山
- 试题H:拔河
- 我的感想
试题 A: 握手问题
分 试题 A: 握手问题 本题总分:5 分 问题描述 小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。
在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手(且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手(但这 7 人与除这 7 人以外的所有人进行了握手)。
请问这些人之间一共进行了多少次握手?注意 A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。答案提交 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 我的答案
(图片来源网络,侵删)#include #include using namespace std; int Solution() { int ans=0; for(int i=49;i>=7;--i){ ans+=i; cout cout long double length=343720.0,width=233333.0; long double dx=15.0,dy=17.0; long double step=411764.1176470588;//411764 int t=0; long double dist=0; while(true){ t++; dist+=step; while(distlength+3){ dist-=length; } if(abs(dist-length) cout int n; cinn; int ans=0; for(int i=1;i int dont=0; int t=i; bool add=true; while(t0){ int wei=t%10; wei%=2; if(wei==dont) { add=false; break; } dont=wei; t/=10; } if(add) ans++; } return ans; } int main() { cout const int MOD = 1e9 + 7; // 初始化 dp 数组 vector dp[1][j] = 1; } // 动态规划计算好数的数量 for (int i = 2; i for (int j = 1; j if (i % 2 == 1) { // 当前位数为奇数位 // 前一位是偶数位的好数数量 for (int k = 0; k dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD; } } else { // 当前位数为偶数位 // 前一位是奇数位的好数数量 for (int k = 1; k dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD; } } } } // 计算好数的总数量 long long ans = 0; for (int i = 1; i for (int j = 1; j ans = (ans + dp[i][j]) % MOD; } } return ans; } int main() { int N; cin N; cout int n; long double d; cinnd; long double val=pow(2,n); long long result=d*val+0.5f; cout Solution(); return 0; } if(!b) return a; return gcd(b,a%b); } int lcm(int a,int b){ return a/gcd(a,b)*b; } void Solution() { int n; cinn; vector for(int j=0;j if(j!=i) { for(int k=0;k if(k!=j&&k!=i) { int q,w,e,r; q=lcm(g[i],g[j]); w=lcm(g[i],g[k]); e=lcm(g[j],g[k]); r=lcm(q,g[k]); int tem=g[i]*g[j]*g[k]*r/q/w/e; if(temmaxx){ maxx=tem; a=g[i]; b=g[j]; c=g[k]; } } } } } } cout Solution(); return 0; } vector{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0}}; int n,k; cinnk; int totalsize=n*n-1; vector if(s.size()==totalsize){ if(i==n-1&&j==n-1) { if(ans==""||!lexicographical_compare(ans.begin(),ans.end(),s.begin(),s.end())) ans=s; } return; } int nxt=(g[i][j]+1)%k; for(int u=0;u int x=i+move[u][0]; int y=j+move[u][1]; if(x=0&&x if(u%2==1) { double rx=i+move[u-1][0]; double ry=j+move[u-1][1]; double lx=i+move[u+1][0]; double ly=j+move[u+1][1]; double tx=(rx+lx)/2.0; double ty=(ry+ly)/2.0; pair st.insert(insp); vis[x][y]=true;//与下面重复了 char fr='0'+u; string tem=s+fr; dfs(x,y,tem); st.erase(insp); vis[x][y]=false; } } else { vis[x][y]=true; char fr='0'+u; string tem=s+fr; dfs(x,y,tem); vis[x][y]=false; } } } }; if(n==1) return ""; vis[0][0]=true; dfs(0,0,""); return ans==""?"-1":ans; } //F /* 3 3 0 2 0 1 1 1 2 0 2 */ int main() { cout1, 1, 0, -1, -1, -1, 0, 1}; const int dy[] = {0, 1, 1, 1, 0, -1, -1, -1}; // 检查移动是否在边界内 bool isValid(int x, int y, int N) { return x = 0 && x
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...