A.Addition and Subtraction Easy
题目大意:连续输入整数,字符,整数这种顺,要求你按题意求值;
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#define mm(i,v) memset(i,v,sizeof i);
using namespace std;
typedef long long ll;
int a,b;
char s;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>a>>s>>b;
if(s=='+')
cout<<a+b;
else
cout<<a-b;
return 0;
}
B.Contest with Drinks Easy
题目大意:改变值,再求和。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#define mm(i,v) memset(i,v,sizeof i);
using namespace std;
typedef long long ll;
const int maxn=105;
int a[maxn];
int n,m;
int x,y;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>m;
for(int i=1;i<=m;i++){
ll ans=0;
cin>>x>>y;
int pre=a[x];
a[x]=y;
for(int i=1;i<=n;i++)
ans+=a[i];
cout<<ans<<"\n";
a[x]=pre;
}
return 0;
}
C. Lining Up
题目大意:大概就每个人忘了自己的位置,只记得自己左边和右边的人数差。
思路:0一定要在正中间,如果是奇数,肯定奇数一个零,如果是偶数,0也要是2的倍数出现。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
#define mm(i,v) memset(i,v,sizeof i);
#define int long long
using namespace std;
typedef long long ll;
const int maxn=1e5+10;
const ll mod=1e9+7;
int qpow(int a,int b){
int ret=1;
while(b){
if(b&1)
ret=(ret*a)%mod;
b>>=1;
a=(a*a)%mod;
}
return ret;
}
int n,x;
int m[maxn];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
for(int i=0;i<n;i++){
cin>>x;
m[x]++;
}
for(int i=0;i<n;i++){
if(m[i]>=3){
cout<<"0";
return 0;
}
}
if((n&1&&m[0]!=1)||(!(n%2)&&m[0])){
cout<<"0";
return 0;
}
cout<<qpow(2,n/2);
return 0;
}