简单思维题
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define int long long 4 #define inf 0x3f3f3f3f3f3f3f 5 int a[654634]; 6 signed main(){ 7 int n;cin>>n; 8 int minx=inf;int x=0; 9 for(int i=1;i<=n;i++) { 10 cin>>a[i]; 11 if(a[i]<minx){ 12 x=i; minx=min(minx,a[i]); 13 } 14 15 } 16 if(n==1){ 17 cout<<"-1"; 18 return 0; 19 } 20 if(n==2&&a[1]==a[2]){ 21 cout<<"-1";return 0; 22 } 23 cout<<"1"<<' '<<x; 24 return 0; 25 }
1 #include<bits/stdc++.h> 2 3 using namespace std; 4 #define int long long 5 int arr[5636531]; 6 int sum[6516584]; 7 signed main(){ 8 int n,m; 9 cin>>n>>m;int cnt=0; 10 int s=0; 11 for(int i=1;i<=n;i++) cin>>arr[i]; 12 for(int i=1;i<n;i++){ 13 14 if(arr[i]%2){ 15 s--; 16 }else{ 17 s++; 18 } 19 if(s==0&&i!=n){ 20 sum[cnt++]=abs(arr[i+1]-arr[i]); 21 } 22 } 23 int add=0; 24 int ans=0; 25 sort(sum,sum+cnt); 26 /* cout<<cnt<<' '; 27 for(int i=0;i<cnt;i++) cout<<sum[i]<<" "; 28 */ 29 for(int i=0;i<cnt;i++){ 30 add+=sum[i]; 31 if(add>m){ 32 break; 33 } 34 ans++; 35 } 36 cout<<ans; 37 return 0; 38 } 39 /* 40 10 100 41 94 65 24 47 29 98 20 65 6 17 42 */
//x :翻转 //y :置数 #include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int n,x,y; cin>>n>>x>>y; string str; cin>>str; stack<int> s; for(int i=0;i<str.size();i++){ if(s.empty()){ s.push((str[i]-'0')); }else{ int temp=s.top(); if(temp==(str[i]-'0')){ continue; }else{ s.push((str[i]-'0')); } } } if(s.size()==1&&str[0]=='1'){ cout<<"0"; return 0; }int ans=0; if(s.size()%2==0){ // 偶数 ans=min((s.size()/2-1)*x+y,s.size()/2*y); cout<<ans; }else{ int temp=s.top(); if(temp==1){ ans=min((s.size()/2-1)*x+y,(s.size()/2)*y); cout<<ans; }else{ ans=min(((s.size()/2)*x+y),(s.size()/2+1)*y); cout<<ans; } } return 0; } /* 2 0 4 1 6 2 8 3 01011 5 1 011 3 1 0101011 01011 01010 5 2 010 3 1 */