赞
踩
成绩出来了是省二,大概算下来差不读30多分左右不清楚具体的给分所以也不好评价了,接下来还有个jscpc,下面的这些题目等有时间了再更新吧!
额,这个题简直送分吧,不过就相当于开胃菜吧,直接手算了。
答案是 1478
2*9^3+2*9+2*9^0
首先这个有几个注意点,第一 为什么20221023不是顺子日期,说明210不是顺子(不清楚0到底算不算),第二 题目说20220123出现了一个顺子123,说明012不是顺子,进而说明0不算(迷?)
附应该有的日期,不一定正确,有待考证
答案 4或14(听说是官方出的,都算对)
送分题目,也就是签到题啦,注意开long long.
#include <iostream> #include <algorithm> using namespace std; int n; typedef long long ll; ll a,b,day,sum; int main(){ cin>>a>>b>>n; day=0,sum=0; int count=1; while(sum<n){ int temp=count%7; if(temp>=1&&temp<=5) sum+=a; if(temp==6||temp==0) sum+=b; count++; } printf("%d",count-1); return 0; }
话说我做个题目就感觉有数学方法可以解决,因为很明显是有规律的,为什么呢?你从左边剪到右边,再从右边剪到左边,这里就会感到这其中存在对称性。
不过一开始我还好奇这个4 2 4怎么来的,后来看了题目才知道她是傍晚修剪的,早上还可以剪的。
再找N=4,可以得知数据为6 4 4 6.
在1-n/2课树,可以发现规律是2*(n-i)
那么就知道这个当N为偶数的时候将数组对半开,当奇数也是同理。
下面附代码。
#include <iostream> #include <cstring> using namespace std; int n; int main(){ cin>>n; int a[n+1]; memset(a,0,sizeof(a)); if(n%2==0){ for(int i=1;i<=n/2;i++){ a[n+1-i]=a[i]=2*(n-i); } }else{ for(int i=1;i<=n/2+1;i++){ a[n+1-i]=a[i]=2*(n-i); } } for(int i=1;i<=n;i++){ cout<<a[i]<<endl; } return 0; }
题目没看懂,到现在都不知道怎么从321到65,留个坑吧,后续一定要补上!
这个题目呢我一开始想用4个循环的来做,发现太暴力了,时间上面会比较慢。
后面我想到只要2个循环就可以解决,具体方法如下:
#include<iostream> using namespace std; int a[505][505] = { 0 }, b[505][505] = { 0 }; int main() { int n, m, k, i, j, sum = 0; cin >> n >> m >> k; for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { cin >> a[i][j]; if (a[i][j] <= k) { sum++; } b[i][j] = a[i][j]; if (j - 1 >= 0) { b[i][j] += b[i][j - 1]; } if (i - 1 >= 0) { b[i][j] += b[i - 1][j]; } int l = j - 1; while (l >= 0) { if (b[i][j] - b[i][l] <= k) { sum++; } l--; } l = i - 1; while (l >= 0) { if (b[i][j] - b[l][j] <= k) { sum++; } l--; } } } cout << sum << endl; return 0; }
这个题目考场没有做出来,参考其他博主的代码,后期再深入研究一下:
本题是洛谷题目覆盖墙面,醉了,基本一样…
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int n; int mod=1000000007; int f[1000010][2]; int main(){ scanf("%d",&n); f[0][0]=1;f[1][0]=1; for(int i=2;i<=n;i++){ f[i][0]=(f[i-1][1]+f[i-1][0]+f[i-2][0])%mod; f[i][1]=(f[i-1][1]+2*f[i-2][0])%mod; } cout<<f[n][0]; }
后期填坑吧…
多的不说,出了往年题目的类似版,也是没啥了...
不过不知道这个数据能跑到多少
#include <iostream> using namespace std; long long cnt=0; int mod=1000000007; int n,m,c=2; void dfs(int x,int y,int c){ if(x<0||y<0) return ; if(x==0&&y==1&&c==1){ cnt++; cnt=cnt%mod; return; } if(x>0) dfs(x-1,y,c*2); if(y>0) dfs(x,y-1,c-1); } int main(){ int m,n; cin>>n>>m; dfs(n,m,c); cout<<cnt<<endl; }
有时间看吧,填坑。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。