牛客周赛42

a-e非常签到

a

import  tkinter

root = tkinter.Tk()
root.geometry("1200x800")

mem0=tkinter.StringVar()
for i in range(1,8):
    exec (f"mem{i}=tkinter.StringVar()")

mem=[eval(f"mem{i}") for i in range(8) ]   #  mem=[mem0,mem1,mem2,mem3.....mem7]

for i in range(0,4):
    exec (f"var{i}=tkinter.StringVar()")

var=[eval(f"var{i}") for i in range(4) ]   #  var=[var0,var1,var2,var3]


for i in range(0,10):
    exec (f"rank{i}=tkinter.StringVar()")

rank=[eval(f"rank{i}") for i in range(10) ]   #  rank=[rank0,....]


def input_num(n):
    pass

def game_start():
    pass

def guess_num():
    pass





bn0=tkinter.Button(root,text="0",bg="pink",command=lambda :input_num("0"))
bn0.place(x=30,y=700,width=40,height=40)

for i in range(1,10):
    exec('bn{}=tkinter.Button(root,text="{}",bg="pink",command=lambda :input_num("{}"))'.format(i,i,i))
    exec('bn{}.place(x=30+{}*60,y=700,width=40,height=40)'.format(i,i))

bn_start = tkinter.Button(root,text="开始/重新开始",bg="pink",command=lambda :game_start())
bn_start.place(x=30,y=600,width=280,height=80)

bn_sure = tkinter.Button(root,text="确定",bg="pink",command=lambda :guess_num())
bn_sure.place(x=330,y=600,width=280,height=80)

lb_mem0=tkinter.Label(root,textvariable=mem0,bg="pink")
lb_mem0.place(x=30,y=300,width=280,height=50)

for i in range(1,4):
    exec('lb_mem{}=tkinter.Label(root,textvariable=mem{},bg="pink")'.format(i,i))
    exec ('lb_mem{}.place(x=30,y=300+{}*70,width=280,height=50)'.format(i,i))

for i in range(4,8):
    exec('lb_mem{}=tkinter.Label(root,textvariable=mem{},bg="pink")'.format(i,i))
    exec ('lb_mem{}.place(x=330,y=300+{}*70,width=280,height=50)'.format(i,i-4))

for i in range(0,4):
    exec('lb{}=tkinter.Label(root,textvariable=var{},bg="pink")'.format(i,i))
    exec ('lb{}.place(x=30+150*{},y=100,width=130,height=130)'.format(i,i))

lb_rank_title=tkinter.Label(root,text="姓名                  尝试次数                  耗时",bg="pink")
lb_rank_title.place(x=700,y=100,width=400,height=50)

for i in range(0,10):
    exec('lb_rank{}=tkinter.Label(root,textvariable=rank{},bg="pink")'.format(i,i))
    exec ('lb_rank{}.place(x=700,y=160+{}*60,width=400,height=50)'.format(i,i))



root.mainloop()

b

#include <bits/stdc++.h>

using namespace std;
#define int long long
#define ll long long
typedef pair<int, int> pii;
#define N 250005
#define endl '\n'
int mod=1e9+7;
int a[N];
void solve() {
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	string s;
	cin>>s;
	int len=s.length()-1;
	int ans=0;
	int now=1;
	for(int i=0;i<=len;i++){
        char c=s[i];
		if(c=='R'){
			now=min(now+1,n);
		}
		else{
			now=max(now-1,1ll);
		}
		ans+=a[now];
        ans%=mod;
        //cout<<c<<" "<<now<<'\n';
	}
	cout<<ans;
}


signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int t = 1;
//	cin >> t;

	while (t--) {
		solve();
	}
	return 0;
}

c

#include <bits/stdc++.h>

using namespace std;
#define int long long
#define ll long long
typedef pair<int, int> pii;
#define N 250005
#define endl '\n'
int mod=998244353;
int a[N];
void solve() {
	int n;
	cin>>n;
	
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	set<int>s;
	if(n&1){
		s.insert(a[n]);
		int l=1,r=n-1;
		while(l<=r){
			s.insert(a[l]*a[r]);
            l++;
            r--;
		}
	}
	else{
		int l=1,r=n;
		while(l<=r){
			s.insert(a[l]*a[r]);
            l++;
            r--;
		}
	}
	cout<<*s.rbegin()-*s.begin();
	
}


signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int t = 1;
//	cin >> t;

	while (t--) {
		solve();
	}
	return 0;
}

d

#include <bits/stdc++.h>

using namespace std;
#define int long long
#define ll long long
typedef pair<int, int> pii;
#define N 250005
#define endl '\n'
int mod=998244353;
vector<int> a[N];
int c[N];
int mx;
int ans=0;
void dfs(int u,int fa,int sum){
	mx=max(mx,sum);
    c[u]+=1;
	for(auto v:a[u]){
		if(v==fa) continue;
		dfs(v,u,sum+1);
        if(c[v]%2==0){
            ans++;
        }
        else{
            c[u]+=c[v];
        }
	}
}
void solve() {
	int n;
	cin>>n;
	for(int i=1;i<=n-1;i++){
		int u,v;
		cin>>u>>v;
		a[u].push_back(v);
		a[v].push_back(u);
	}
	dfs(1,0,1);
	if(c[1]%2==1){
		cout<<-1;
	}
	else{
		cout<<ans;
       // cout<<-1;
	}
	
}


signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int t = 1;
//	cin >> t;

	while (t--) {
		solve();
	}
	return 0;
}

e

dp

#include<bits/stdc++.h>
using namespace std; 
const int N=1e6+6;
namespace modnum_space {
	typedef long long ll;
	const ll pmod = 1e9+7;
	struct modnum;
	modnum inv(modnum a);
	ll exgcd(ll a, ll b, ll &x, ll &y);
	modnum qpow(modnum a, modnum b, modnum p);
	
	struct modnum {
		ll val;
		modnum(){ val = 0; }
		modnum(ll a) { val = (a%pmod+pmod)%pmod; }
		modnum(int a) { val = (a%pmod+pmod)%pmod; }
		friend modnum operator + (const modnum &a, const modnum &b){ return (a.val+b.val)%pmod; }
		friend modnum operator - (const modnum &a, const modnum &b){ return (a.val-b.val+pmod)%pmod; }
		friend modnum operator * (const modnum &a, const modnum &b){ return (a.val*b.val)%pmod; }
		friend modnum operator / (const modnum &a, const modnum &b){ return (a.val*inv(b.val)).val%pmod; }
		friend modnum& operator += (modnum &a, const modnum &b){ return a = a+b; }
		friend modnum& operator -= (modnum &a, const modnum &b){ return a = a-b; }
		friend modnum& operator *= (modnum &a, const modnum &b){ return a = a*b; }
		friend modnum& operator /= (modnum &a, const modnum &b){ return a = a/b; }
	};
	
	modnum inv(modnum a)
	{
		ll x, y;
		exgcd(a.val, pmod, x, y);
		x = (x%pmod+pmod)%pmod;
		return x;
	}
	modnum qpow(modnum a, ll b)
	{
		modnum ans = 1;
		for(; b; b >>= 1, a *= a)
			if(b&1) ans *= a;
		return ans;
	}
	ll exgcd(ll a, ll b, ll &x, ll &y)
	{
		if(b == 0){ return x = 1, y = 0, a; }
		ll d = exgcd(b, a%b, x, y);
		ll z = x; x = y; y = z-(a/b)*y;
		return d;
	}
	
	
#ifdef _GLIBCXX_IOSTREAM
	std::istream& operator >> (std::istream& cin, modnum &a)
	{ cin >> a.val; a.val %= pmod; return cin; }
	std::ostream& operator << (std::ostream& cout, modnum a)
	{ cout << a.val; return cout; }
#endif
}
using namespace modnum_space;
#define z modnum
z dp[1005][1005];
z sl[1005][1005];
void solve() {
	int n,k;
	cin>>n>>k;
	string s;
	cin>>s;
	s=' '+s;
	z ans=0;
    sl[0][0]=1;
    for(int i=1;i<=n;i++){
        sl[i][0]=1;
        sl[i][1]=i;
		for(int j=1;j<=min(i-1,k-1);j++){
			sl[i][j+1]=sl[i-1][j];
            sl[i][j+1]+=sl[i-1][j+1];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=0;j<=min(i-1,k-1);j++){
			dp[i][j+1]=dp[i-1][j]*10+(sl[i-1][j])*(s[i]-'0');
            dp[i][j+1]+=dp[i-1][j+1];
		}
	}
    cout<<dp[n][k]<<'\n';//104+52+02+22

}


signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int t = 1;
	// cin >> t;
	while(t--){
		solve();
	}
	return 0;
}

f

概率dp,

#include<bits/stdc++.h>
using namespace std; 
const int N=1e6+6;
int mod=1e9+7;
namespace modnum_space {
	typedef long long ll;
	const ll pmod = 1e9+7;
	struct modnum;
	modnum inv(modnum a);
	ll exgcd(ll a, ll b, ll &x, ll &y);
	modnum qpow(modnum a, modnum b, modnum p);
	
	struct modnum {
		ll val;
		modnum(){ val = 0; }
		modnum(ll a) { val = (a%pmod+pmod)%pmod; }
		modnum(int a) { val = (a%pmod+pmod)%pmod; }
		friend modnum operator + (const modnum &a, const modnum &b){ return (a.val+b.val)%pmod; }
		friend modnum operator - (const modnum &a, const modnum &b){ return (a.val-b.val+pmod)%pmod; }
		friend modnum operator * (const modnum &a, const modnum &b){ return (a.val*b.val)%pmod; }
		friend modnum operator / (const modnum &a, const modnum &b){ return (a.val*inv(b.val)).val%pmod; }
		friend modnum& operator += (modnum &a, const modnum &b){ return a = a+b; }
		friend modnum& operator -= (modnum &a, const modnum &b){ return a = a-b; }
		friend modnum& operator *= (modnum &a, const modnum &b){ return a = a*b; }
		friend modnum& operator /= (modnum &a, const modnum &b){ return a = a/b; }
	};
	
	modnum inv(modnum a)
	{
		ll x, y;
		exgcd(a.val, pmod, x, y);
		x = (x%pmod+pmod)%pmod;
		return x;
	}
	modnum qpow(modnum a, ll b)
	{
		modnum ans = 1;
		for(; b; b >>= 1, a *= a)
			if(b&1) ans *= a;
		return ans;
	}
	ll exgcd(ll a, ll b, ll &x, ll &y)
	{
		if(b == 0){ return x = 1, y = 0, a; }
		ll d = exgcd(b, a%b, x, y);
		ll z = x; x = y; y = z-(a/b)*y;
		return d;
	}
	
	
#ifdef _GLIBCXX_IOSTREAM
	std::istream& operator >> (std::istream& cin, modnum &a)
	{ cin >> a.val; a.val %= pmod; return cin; }
	std::ostream& operator << (std::ostream& cout, modnum a)
	{ cout << a.val; return cout; }
#endif
}
using namespace modnum_space;
#define z modnum
z dp[100][100];
inline ll power(ll a,ll b,ll mod){
	if(b==0){
		return 1;
	}
	ll res = 1;
	while(b>0){
		if(b&1){
			res = (res*a)%mod;
		}
		a= (a*a)%mod;
		b>>=1;
	}
	return res;
}

void solve() {
	ll n;
	cin>>n;
	int x=0,y=0;
	while(n%2==0){
		x++;
		n/=2;
	}
	while(n%3==0){
		y++;
		n/=3;
	}
	if(n!=1){
		cout<<-1;
        return;
	}

	ll dm=power(2,mod-2,mod);
	for(int i=0;i<=x;i++){
		for(int j=0;j<=y;j++){
            if(i&&j)
			dp[i][j]=(3+dp[i][j-1]+dp[i-1][j])*dm;
            else if(i){
                dp[i][j]=(3+dp[i-1][j]);
            }
            else if(j)
            {
                dp[i][j]=(3+dp[i][j-1]);
            }
                
		}
	}
    //cout<<x<<' '<<y<<'\n';
	cout<<dp[x][y];
	
}


signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int t = 1;
	// cin >> t;
	while(t--){
		solve();
	}
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值