1.最小向量点积
#includeusing namespace std;int n,t,tmp;int a[1001],b[1001];int main(){ cin>>t; for(int i=0;i >n;tmp=0; for(int j=0;j >a[j]; for(int j=0;j >b[j]; sort(a,a+n),sort(b,b+n); for(int j=0;j
2.连续正整数问题
个人想法是判读“中间数”,连续正整数之和有两种情况,奇数个数的和(有一个“中间数”),或者偶数个数的和(两个连续“中间数”,和必为奇数);
若是奇数个数的和,比如21=6+7+8,也就是中间数为7,这时候需要判断左边界是否大于零;
若是偶数个数的和,比如30=6+7+8+9,中间数为7和8,同样判断左边界是否大于零;
个人代码:
#includeusing namespace std;int n,t,tmp;int cnt(int n){ int cnt=0; for(int i=2;i =1)cnt++; if(i%2) if(((i+1)/2-tmp)>=1)cnt++; } if(n%2)cnt++; return cnt;}int main(){ cin>>t; for(int i=0;i >n; cout<<"case #"< <<":\n"< <
但是由于思路比较混乱,自己做了一个小时,最终结果也不是很理想,参考学长代码如下(转载自):
#includeusing namespace std;int n,cnt;int a[500];int i,j,k;int main(){ cin>>n; for(i=0;i >a[i]; for(i=0;i