重新振作第26-32天----没救了
依旧是废物的生活。。。。天天白天都在摆烂刷视频,没有力气来进行复习,要哭了要。。。。。
软件设计大作业
拼了两个通宵才弄完,前面真的太摆烂了
软件设计个人小实验
结合学长的资料还有AI工具,进行二次修改和创造
软件设计数据库
自学一手flask+vue,做了一个很抽象的小网页连接数据库
移动应用开发个人实验2-3
emmmm这个东西真的纯自己写??????
每个实验都有几千行代码????
感觉大部分都是AI还有git,然后二创,这就是开源的作用!!!
软件设计问题思考
依旧是一个通宵,查了知乎和chat还有一堆东西,造出来的残次品
退役的败犬
题目链接:https://atcoder.jp/contests/abc354/tasks/abc354_e
题目分析:看注释
代码实现:
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
using namespace std;
const int N=2e6+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n;
void solve(){
cin>>n;
pair<int,int>a[n+2];
for(int i=0;i<n;i++){
cin>>a[i].first>>a[i].second;
}
vector<int>mp(1<<n,0);
vector<int>vis(1<<n,0);
// 1代表从当前往后是一定获胜,0代表必定输
// 思路是如果从最终的往前推,如果当前的存在是可以0,则前一步的都是1,除非当前的全是1,才可以前一步是0。
queue<int>q;
// 一开始0和单独的一张牌都是必输,初始化
q.push(0);
mp[0]=0;
vis[0]=1;
for(int i=0;i<n;i++){
mp[1<<i]=0;
vis[1<<i]=1;
q.push(1<<i);
}
while(q.size()){
int x=q.front();
q.pop();
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(((x>>i)&1)==1&&((x>>j)&1)==1&&(
a[i].first==a[j].first||
a[i].second==a[j].second
)
){
// 思路是如果从最终的往前推,如果当前的存在是可以0,则前一步的都是1,除非当前的全是1,才可以前一步是0。
if(!mp[x-(1<<i)-(1<<j)]){
mp[x]=1;
// cout<<x<<' '<<i<<" "<<j<<endl;
}
}
}
}
int tt;
//后面的入队
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(((x>>i)&1)==0&&((x>>j)&1)==0){
if(!vis[x+(1<<i)+(1<<j)]){
vis[x+(1<<i)+(1<<j)]=1;
q.push(x+(1<<i)+(1<<j));
}
}
}
}
}
if(mp[(1<<n)-1]){
cout<<"Takahashi"<<endl;
}
else {
cout<<"Aoki"<<endl;
}
}
signed main(){
ios;
int t;
t=1;
//cin>>t;
while (t--){
solve();
}
return 0;
}