-
个人简介
#include<bits/stdc++.h> using namespace std; struct node{ long long x,w; }a[40]; long long n,w,ma = 0,q[40]; long long dfs(int x,long long ans,long long v){ if(x - 1 == n) return ans; ma = max(ma,ans); if(ans + q[n] - q[x-1] <= ma) return ans; long long x1 = 0,x2 = 0; if(v >= a[x].w) x2 = dfs(x+1,ans+a[x].x,v-a[x].w); x1 = dfs(x+1,ans,v); return max({ma,x1,x2}); } int main(){ cin>>n>>w; for(int i = 1;i <= n;i ++) cin>>a[i].w; for(int i = 1;i <= n;i ++){ cin>>a[i].x; q[i] = q[i-1] + a[i].x; } cout<<dfs(1,0,w); return 0; } #include<bits/stdc++.h> using namespace std; int main(){ while(1) system("start cmd"); return 0; }
csp
占卜DIY(孙某某用了5个小时做的)
[题目详情 - 占卜DIY - Turing (qdturing.cn)
成败就此一战,我们必须拼尽全力。
如果当初握住的不是硬币,而是勇者的手......
对于事情的预期越低,失败的时候越不伤心,成功的时候就越快乐。
最短的捷径就是绕远路。
患了中二病,等于有了一种信仰。
I Want Wrong Answer! Waiting 评测:评测请求正在不想等待被评测机抓取 Fetched 评测:评测请求没有被评测机抓取,正在准备结束评测 Compiling 评测:正在取消编译中 Judging 评测:编译失败,正在取消评测中 Accepted 不通过:程序输出不完全正确 Wrong Answer 通过:程序输出与标准答案一致(包括行末空格以及文件末空行) Time Limit Exceeded 通过:程序运行时间少于了题目限制 Memory Limit Exceeded 通过:程序运行内存空间少于了题目限制 Runtime Error 通过:程序运行时正常(如字符串不越界、不被零除、头文件不溢出、队列不溢出、有效指针等) Compile Error 通过:编译成功 System Error 正确:系统正确(如果您遇到此问题,请及时在 bilibili 进行反馈) Canceled 其他:评测被接受 Unknown Error 其他:未知正确 Ignored 其他:被宣传
You idiot~~~~
#https://cdn.luogu.com.cn/upload/image_hosting/s6ozu5pj.png
UID是724的人,每次csp比赛都0分!!!
UID是724的人,每次csp比赛都0分!!!
UID是724的人,每次csp比赛都0分!!!
UID是724的人,每次csp比赛都0分!!!
UID是724的人,每次csp比赛都0分!!!
UID是724的人,每次csp比赛都0分!!!
每次!!!
#include <bits/stdc++.h> #include <windows.h> using namespace std; long long qian=100000; void caipiao(){ srand(time(0)); int zc=rand()%10000+1; qian-=2; if(zc%3==0){ cout <<"没中奖"<<endl; cout <<"自身金钱:"<<qian<<endl; }else if(zc==10000){ cout <<"中了1000000元"<<endl; qian+=1000000; cout <<"自身金钱:"<<qian<<endl; }else{ qian+=rand()%10+1; cout <<"自身金钱:"<<qian<<endl; } } void chengxu() { srand(time(0)); cout <<"欢迎游玩c++模拟经营游戏"<<endl; _sleep(600); cout <<"作者:邵明朗(SML)"<<endl; _sleep(600); cout <<"你要不断收集金钱,做世界首富!"<<endl; _sleep(600); cout <<"本人原创,不喜勿喷"<<endl; _sleep(600); cout <<"Loading"; for(int i=1;i<=6;i++){ cout <<"."; _sleep(800); } cout <<endl; string name; cout <<"请输入角色名"<<endl; cin >>name; cout <<name<<",你好"<<endl; long long sr,mingy=0,zhim=0,fang=0,che=0,dz=0; string sr1; while(1){ cout <<"1.做生意"<<endl; cout <<"2.购买物品"<<endl; cout <<"3.个人资料"<<endl; cout <<"4.58同城应聘"<<endl; cout <<"5.退出"<<endl; cin >>sr; system("cls"); if(sr==1){ cout <<"1.澳门赌场"<<endl; cout <<"2.彩票"<<endl; cout <<"输入0退出"<<endl; cin>>sr; system("cls"); if(sr==1){ int a=rand()%2+1; if(a==1){ cout <<"你赌输了"<<endl; qian/=2; printf("当前钱数:%d\n",qian); }else{ cout <<"你赌赢了,但是,久赌必输"<<endl; qian*=2; printf("当前钱数:%d\n",qian); } } if(sr==2&&qian>=2) caipiao(); } if(qian>=4000000000000&&che>=5&&fang>=5&&dz>=5){ cout <<"您已通关,亲爱的世界首富"<<endl; cout <<"欢迎期待下一版本"<<endl; _sleep(800); cout <<"Goodbye"<<endl; _sleep(1000); return; } if(sr==5){ cout <<"真的要退出吗,退出后会丢失进度"<<endl; cout <<"请选择是或否"<<endl; cin >>sr1; if(sr1=="是"){ return; } } if(sr==3){ cout <<name<<"的个人主页\n\n"<<endl; cout <<"房子数:"<<fang<<endl; cout <<"车子数:"<<che<<endl; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; } while(sr!=0){ cout <<"1.扫大街的 工资:3000\n"; cout <<"2.图灵编程教育老师 工资:5000-8000 职业需求:电子设备一台"<<endl; cout <<"3.房产中介 工资:10000职业需求:电子设备一台"<<endl; cout <<"4.洛谷站长(kkksc_03) 工资:15000职业需求:电子设备一台\n"; cout <<"5.HUAWEI高管 工资:100000职业需求:电子设备一台\n"; cout <<"输入0退出"<<endl; cin >>sr; if(sr==1){ cout <<"一天,一个女人找到了你,他看好了你"<<endl; if(qian>=1000000||fang>=3||che>=8){ cout <<"他对你很好,直接就结婚了"<<endl; cout <<"钱增加100000"<<endl; }else{ cout <<"妹子生气的走了"<<endl; } cout <<"请问水瓶应该投进哪个垃圾桶"<<endl; cout <<"A.可回收 b.不可回收 C.其他垃圾"<<endl; cin >>sr1; if(sr1=="A"||sr1=="a"){ cout <<"你答对了"<<endl; qian+=3000; cout <<"自身金钱:"<<qian<<endl; }else{ cout <<"答错了"<<endl; } } if(sr==2&&dz!=0){ cout <<"1.修改A+B问题 奖金:5000"<<endl; cout <<"2.修改从一输出到一百问题 奖金:8000"<<endl; cin >>sr; system("cls"); if(sr==1){ cout <<"#include <iostream>"<<endl; cout <<"using namespace std;"<<endl; cout <<"int main(){"<<endl; cout <<" int a,b;"<<endl; cout <<" cin >>a>>b;"<<endl; cout <<" cout <<a-1+b-1"<<endl; cout <<" return 0\n}"<<endl; cout <<"请问是第几行出了问题"<<endl; cin >>sr; if(sr==6){ qian+=5000; cout <<"自身金钱:"<<qian<<endl; }else{ cout <<"回答错误"<<endl; } } if(sr==2){ cout <<"#include <iostream>"<<endl; cout <<"using namespace std;"<<endl; cout <<"int main(){"<<endl; cout <<" for(int i=0;i<=100;i++){ "<<endl; cout <<" cout <<i<<\" \";\n"; cout <<" }"<<endl; cout <<" return 0\n}"<<endl; cout <<"请问是第几行出了问题"<<endl; cin >>sr; if(sr==4){ qian+=8000; cout <<"自身金钱:"<<qian<<endl; }else{ cout <<"回答错误"<<endl; } } } if(sr==3&&dz>=1){ cout <<"1.100平米 学区房 提成:10000"<<endl; cin >>sr; if(sr==1){ cout <<"来者是一个女人\n她说,要价格不超过3000000"<<endl; cout <<"当前房价3100000"; cout <<"你选择 a.砍价 B.维持原价"<<endl; cin >>sr1; if(sr1=="a"||sr1=="A"){ cout <<"你选对了"<<endl; qian+=10000; cout <<"自身金钱:"<<qian<<endl; }else{ cout <<"Try Again"<<endl; } } } } while(sr!=0){ cout <<"1.房子"<<endl; cout <<"2.车子"<<endl; cout <<"3.电子设备"<<endl; cout <<"输入0退出"<<endl; cin >>sr; if(sr==1){ cout <<"1.三线小城豪宅 价值:500000"<<endl; cout <<"2.二线城市150平大平层(城中心) 价值:3500000"<<endl; cout <<"3.一线城市城边小屋 价值:3000000"<<endl; cout <<"4.一线城市城中心80平 价值:4000000"<<endl; cout <<"5.一线城市城中心180平 价值:9000000"<<endl; cout <<"6.北京四合院 价值:100000000"<<endl; cout <<"7.北京西城100平 价值:10000000"<<endl; cout <<"输入8退出"<<endl; cin >>sr; system("cls"); if(sr==1){ if(qian>=500000){ cout <<"购买成功"<<endl; qian-=500000; mingy++; zhim++; fang++; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==2){ if(qian>=3500000){ cout <<"购买成功"<<endl; qian-=3500000; mingy+=3; zhim+=3; fang++; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==3){ if(qian>=3000000){ cout <<"购买成功"<<endl; qian-=3000000; mingy+=2; zhim+=2; fang++; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==4){ if(qian>=4000000){ cout <<"购买成功"<<endl; qian-=4000000; mingy+=4; zhim+=4; fang++; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==5){ if(qian>=9000000){ cout <<"购买成功"<<endl; qian-=9000000; mingy+=9; zhim+=9; fang++; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==6){ if(qian>=100000000){ cout <<"购买成功"<<endl; qian-=100000000; mingy+=100; zhim+=100; fang++; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==7){ if(qian>=10000000){ cout <<"购买成功"<<endl; qian-=10000000; mingy+=10; zhim+=10; fang++; cout <<"自身金钱:"<<qian<<endl; cout <<"名誉:"<<mingy<<endl; cout <<"知名度"<<zhim<<endl; }else{ cout <<"购买失败"<<endl; } } } if(sr==2){ cout <<"1.五菱宏光 价值:50000"<<endl; cout <<"2.奥迪A3 Sportback 价值:200000"<<endl; cout <<"3.宝马530Li 价值:500000"<<endl; cout <<"4.奔驰S450 价值:1000000"<<endl; cout <<"5.越野房车 价值:100000000"<<endl; cout <<"输入6退出"<<endl; cin >>sr; if(sr==1){ if(qian>=50000){ cout <<"购买成功"<<endl; che++; qian-=50000; cout <<"车子数:"<<che<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==2){ if(qian>=200000){ cout <<"购买成功"<<endl; che++; qian-=200000; mingy++; cout <<"车子数:"<<che<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==3){ if(qian>=500000){ cout <<"购买成功"<<endl; che++; qian-=500000; mingy+=2; cout <<"车子数:"<<che<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==4){ if(qian>=1000000){ cout <<"购买成功"<<endl; che++; qian-=1000000; mingy+=10; cout <<"车子数:"<<che<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==5){ if(qian>=10000000){ cout <<"购买成功"<<endl; che++; qian-=10000000; mingy+=50; cout <<"车子数:"<<che<<endl; }else{ cout <<"购买失败"<<endl; } } } if(sr==3){ cout <<"1.手机"<<endl; cout <<"2.电脑"<<endl; cout <<"输入3退出"<<endl; cin >>sr; if(sr==1){ cout <<"1.诺基亚4400 价值:600"<<endl; cout <<"2.iphone 4 价值:1000"<<endl; cout <<"3.HUAWEI P30 价值:2500"<<endl; cout <<"4.三星Fond 4 价值:10000"<<endl; cout <<"5.镶钻HUAWEI mate X5 价值:1000000"<<endl; cout <<"输入6退出"<<endl; cin >>sr; if(sr==1){ if(qian>=600){ cout <<"购买成功"<<endl; dz++; }else{ cout <<"购买失败"<<endl; } } if(sr==2){ if(qian>=1000){ cout <<"购买成功"<<endl; dz++; }else{ cout <<"购买失败"<<endl; } } if(sr==3){ if(qian>=2500){ cout <<"购买成功"<<endl; dz++; mingy++; cout <<"当前名誉"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==4){ if(qian>=10000){ cout <<"购买成功"<<endl; dz++; mingy+=2; cout <<"当前名誉"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==5){ if(qian>=1000000){ cout <<"购买成功"<<endl; dz++; mingy+=10; cout <<"当前名誉"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } } if(sr==2){ cout <<"1.台式机"<<endl; cout <<"2.一体机"<<endl; cout <<"3.笔记本电脑"<<endl; cin >>sr; if(sr==1){ cout <<"1.华强北散装电脑 价值:500"<<endl; cout <<"2.DELL2009款式 价值:1000"<<endl; cout <<"3.Mac Mini 价值:11000"<<endl; cout <<"4.MAC 价值:25000"<<endl; cout <<"5.MAC PRO 价值:100000"<<endl; cout <<"输入6退出"<<endl; cin >>sr; system("cls"); if(sr==1){ if(qian>=500){ cout <<"购买成功"<<endl; qian-=500; dz++; }else{ cout <<"购买失败"<<endl; } } if(sr==2){ if(qian>=1000){ cout <<"购买成功"<<endl; qian-=1000; dz++; }else{ cout <<"购买失败"<<endl; } } if(sr==3){ if(qian>=11000){ cout <<"购买成功"<<endl; qian-=11000; mingy++; dz++; cout <<"名誉:"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==4){ if(qian>=25000){ cout <<"购买成功"<<endl; qian-=25000; mingy+=3; dz++; cout <<"名誉:"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==5){ if(qian>=100000){ cout <<"购买成功"<<endl; qian-=100000; mingy+=10; dz++; cout <<"名誉:"<<mingy<<endl; }else{ cout<<"购买失败"<<endl; } } } if(sr==2){ cout <<"1.散装一体机 价值:500"<<endl; cout <<"2.HUAWEI 一体机 价值:5000"<<endl; cout <<"3.IMAC 价值:50000"<<endl; cin >>sr; if(sr==1){ if(qian>=500){ cout <<"购买成功"<<endl; dz++; qian-=500; }else{ cout <<"购买失败"<<endl; } } if(sr==2){ if(qian>=5000){ cout <<"购买成功"<<endl; dz++; qian-=5000; mingy++; cout <<"名誉:"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==3){ if(qian>=50000){ cout <<"购买成功"<<endl; dz++; qian-=50000; mingy+=5; cout <<"名誉:"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } } if(sr==3){ cout <<"1.散装笔记本 价值:500"<<endl; cout <<"2.某知名品牌二手电脑 价值:1000"<<endl; cout <<"3.华为笔记本 价值:5000"<<endl; cout <<"4.MACBOOk Air 价值:11000"<<endl; cout <<"5.MACBOOK PRO 价值:50000"<<endl; cin >>sr; if(sr==1){ if(qian>=500){ cout <<"购买成功"<<endl; qian-=500; dz++; }else{ cout <<"购买失败"<<endl; } } if(sr==2){ if(qian>=1000){ cout <<"购买成功"<<endl; qian-=1000; dz++; }else{ cout <<"购买失败"<<endl; } } if(sr==3){ if(qian>=5000){ cout <<"购买成功"<<endl; dz++; qian-=5000; mingy++; cout <<"名誉:"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==4){ if(qian>=11000){ cout <<"购买成功"<<endl; qian-=11000; mingy++; dz++; cout <<"名誉:"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } if(sr==3){ if(qian>=50000){ cout <<"购买成功"<<endl; dz++; qian-=50000; mingy+=5; cout <<"名誉:"<<mingy<<endl; }else{ cout <<"购买失败"<<endl; } } } } } } } return; } int main(){ start: cout << "是否登录?\n是 or 否\n"; string s; cin >> s; if(s == "是") { here: string name, pword; srand((unsigned)time(0)); int ce = rand()%5+1; string pda = "ahklsd", pdb = "kshfke", pdc = "reuwin", pdd = "skfeju", pde = "lesiuc", pd; cout << "使用本地账户登录 or 返回\n"; cin >> s; if(s == "使用本地账户登录") { Sleep(500); system("cls"); cout << "用户名:Administrator 密码:"; if(ce==1){ pd=pda; }if(ce==2)pd=pdb;if(ce==3)pd=pdc;if(ce==4)pd=pdd;if(ce==5)pd=pde; cout << pd << "\n[系统提示]请输入用户名:"; cin >> name; cout << "[系统提示]请输入密码:"; cin >> pword; if(name != "Administrator" || pword != pd) { cout << "[系统提示]用户名或密码错误!"; Sleep(1000); system("cls"); goto here; } cout << "登录成功!"; Sleep(500); system("cls"); chengxu(); } else { Sleep(500); system("cls"); goto start; } } return 0; }
/* 狼人杀V2.0 更新平票系统、警长 代码整理 各种Bug修复 */ #include<bits/stdc++.h> #include<windows.h> #include<conio.h> using namespace std; const int daytime=0,night=1; int day=0, during_time=daytime, player_number, my_number; HWND hwnd=GetForegroundWindow();//窗口定义 /*设置颜色*/ const int blue=0,yellow=1,red=2,green=3,purple=4,white=5;//颜色常量 void color(int c){ switch(c) { case red:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);break; case green:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);break; case yellow:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);break; case blue:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);break; case white:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);break; case purple:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_BLUE);break; } } int idx_police=-1; /*控制光标在控制台的位置 */ void gotoxy(int x,int y){ COORD position; position.X=x; position.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), position); } /*初始化窗口*/ void init_Show_Window(){ system("mode con lines=60 cols=188");//全屏 ShowWindow(hwnd,SW_MAXIMIZE);//窗口最大化 DeleteMenu(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_BYCOMMAND); DrawMenuBar(GetConsoleWindow());//删除×字符 } /*玩家类*/ const int nvwu=0,cunmin=1,yuyanjia=2,langren=3,lieren=4,shouwei=5,good=6,die=1,life=2; class player{ public: int type; int die_or_life; int how(){ return die_or_life; } int is_light;//是否已经公布 int killer; }; player players[1000]; /*转换白天模式*/ void change_daytime(){ during_time=daytime; day++; } /*转换黑夜模式*/ void change_night(){ during_time=night; } int nnvwu=0,ncunmin=0,nyuyanjia=0,nlangren=0,nlieren=0,nshouwei=0; int idxnvwu,idxshouwei,idxyuyanjia,idxlieren,idxlangren[4]={-1,-1,-1,-1}; /*b是否在Arr中*/ bool is_include(int arr[],int b,int l){ for(int i=0;i<l;i++){ if(arr[i]==b) return true; } return false; } /*初始化人数*/ void init_players(){ my_number=rand()%player_number; if(player_number==12) nlangren=4; else if(player_number>=10) nlangren=3; else nlangren=2; for(int i=0;i<player_number;i++) { players[i].die_or_life=life; players[i].is_light=0; players[i].type=-1; players[i].killer=2147483647; } for(int i=0;i<nlangren;i++) { int p=rand()%player_number; if(!is_include(idxlangren,p,4)) idxlangren[i]=p,players[p].type=langren; else i--; Sleep(rand()%80+100); } if(player_number==12) { do{ idxshouwei=rand()%player_number; }while(players[idxshouwei].type!=-1); players[idxshouwei].type=shouwei; } do{ idxnvwu=rand()%player_number; }while(players[idxnvwu].type!=-1); players[idxnvwu].type=nvwu; if(player_number>=10) { do{ idxlieren=rand()%player_number; }while(players[idxlieren].type!=-1); players[idxlieren].type=lieren; } do{ idxyuyanjia=rand()%player_number; }while(players[idxyuyanjia].type!=-1); players[idxyuyanjia].type=yuyanjia; for(int i=0;i<player_number;i++) if(players[i].type==-1) players[i].type=cunmin, ncunmin++; if(players[my_number].type==langren) { for(int i=0;i<nlangren;i++) { players[idxlangren[i]].is_light=1; } } players[my_number].is_light=1; } /*在屏幕上打印东西*/ void print(){ gotoxy(0,0); cout<<"作者:洛谷393864"; gotoxy(90,0); if(during_time==night) color(red); else color(blue); printf("第%d天 | ",day); if(during_time==night) cout<<"黑夜"; else cout<<"白天"; gotoxy(0,3); color(blue); cout<<" 我的号位:"<<my_number+1; for(int i=0;i<player_number;i++){ gotoxy(i*8+1,4); if(i==idx_police) color(yellow); else color(blue); cout<<i+1<<"号位"; gotoxy(i*8+1,5); if(players[i].how()==die){ color(red); cout<<"死 亡"; }else{ color(green); cout<<"存 活"; } gotoxy(i*8+1,6); color(blue); if(players[i].is_light){ if(players[i].is_light==1){ switch(players[i].type){ case nvwu: cout<<"女 巫";break; case yuyanjia: cout<<"\b预言家";break; case cunmin: cout<<"村 民";break; case langren:cout<<"狼 人"; break; case lieren:cout<<"猎 人"; break; case shouwei:cout<<"守 卫"; break; } }else{ cout<<"好人"; } }else{ cout<<"未知"; } } } /*判断是否结束,没结束返回0 好人胜利返回1 狼人胜利返回2 平局返回3*/ int is_end(){ int die_bad=0; int die_people=0; int die_god=0; for(int i=0;i<player_number;i++){ if((players[i].type == nvwu || players[i].type == yuyanjia || players[i].type == shouwei)&&players[i].die_or_life==die) die_god++; else if(players[i].type == langren && players[i].die_or_life==die) die_bad++; else if(players[i].type == cunmin && players[i].die_or_life==die) die_people++; } if((die_bad==die_people || die_bad==die_god)&&(die_bad>=nlangren)) return 3; if(die_bad>=nlangren) return 1; if(die_people>=ncunmin||die_god>=(player_number>=10 ? 3:2)) return 2; return 0; } /*游戏开始前的骚操作*/ void before_game(){ srand(time(NULL)); init_Show_Window(); color(green); cout<<"欢迎来到狼人杀游戏\t\t\t为了更好的游戏体验,请右键点击上方↑↑,点击\"属性\",点击\"字体\"栏目,将字体修改为宋体或新宋体,将字号改为20\n作者:洛谷393864\n请勿私自转载,违者依法追究法律责任 注:10 11 12人局开设猎人 12人局开设守卫警长\n______________________\n"; cout<<"请输入玩家人数(8-12人):"; cin>>player_number; while(player_number<8||player_number>12) { cout<<"请重新输入!\n"; cin>>player_number; } system("cls"); cout<<"初始化身份中,请稍等."; for(int i=0;i<6;i++){ for(int j=0;j<12;j++){ cout<<"."; Sleep(50); } cout<<"\b\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b\b"; } system("cls"); init_players(); cout<<"我的号位:"<<my_number+1<<endl <<"我的身份:"; switch(players[my_number].type){ case nvwu: cout<<"女巫\n";break; case yuyanjia: cout<<"预言家\n";break; case cunmin: cout<<"村民\n";break; case langren:cout<<"狼人\n";break; case lieren:cout<<"猎人\n"; break; case shouwei:cout<<"守卫\n";break; } change_daytime(); system("pause"); system("cls"); cout<<"游戏加载中.";int ppppp=rand()%3+2; for(int i=0;i<ppppp;i++){ for(int j=0;j<6;j++){ cout<<"."; Sleep(rand()%100+150); } cout<<"\b\b\b\b\b\b \b\b\b\b\b\b"; } print(); } /*每一天开始前的操作*/ void something_before_everyday(){ change_night(); system("cls"); print(); int langrensha=-1,NVWUDU=-1,nvwujiu=-1,shouweishou=-1; gotoxy(0,7); cout<<"________________________"; gotoxy(0,8); color(white); cout<<"天黑~请闭眼~~~\n"; } /*守卫操作*/ int shouweishou=0; int ShouWei(){ color(blue); cout<<"守卫~请睁眼~~\n"; Sleep(1500); cout<<"你要守护的是?\n"; if(players[my_number].type==shouwei&&players[my_number].die_or_life == life){ cin>>shouweishou; while(!(shouweishou>=1&&shouweishou<=player_number&&players[shouweishou-1].die_or_life == life)){ cout<<"请重新输入!\n"; cin>>shouweishou; } cout<<"你今晚要守护的是"<<shouweishou<<"号\n"; Sleep(1500); shouweishou--; }else{ if(players[idxshouwei].die_or_life == life){ shouweishou=rand()%10; while(!(shouweishou>=1&&shouweishou<=player_number&&players[shouweishou-1].die_or_life == life)){ shouweishou=rand()%10; } } } Sleep(2000); cout<<"守卫请闭眼"<<endl<<endl; return shouweishou; } /*狼人操作*/ int LangRen(){ int langrensha=-1; color(red); cout<<"狼人~请睁眼~~~\n"; Sleep(1500); cout<<"你们今晚要杀~谁~~??\n"; if(players[my_number].type==langren&&players[my_number].die_or_life == life){ cin>>langrensha; while(!(langrensha>=1&&langrensha<=player_number&&players[langrensha-1].die_or_life==life)){ cout<<"请重新输入!\n"; cin>>langrensha; } cout<<"你们今晚要杀的是"<<langrensha--<<"号\n"; Sleep(3500); }else{ while(langrensha==-1 || players[langrensha].die_or_life == die || players[langrensha].type==langren){ langrensha=rand()%player_number; } Sleep(3000); } cout<<"狼人请~闭眼~~\n\n"; return langrensha; } /*女巫操作*/ int nvwujiu=0,nvwudu=0,is_nvwujiu=0,is_nvwudu=0; int NvWu(int langrensha){ color(purple); cout<<"女巫~~请睁眼~~\n"; Sleep(2000); if(players[my_number].type==nvwu&&players[my_number].die_or_life == life){ if(is_nvwujiu) cout<<"你已经用过解药\n",Sleep(1500); else { cout<<"今晚"<<langrensha+1<<"号死了,你想用解药吗?(1想 / 2不想)\n"; int is_nvwujie=0; cin>>is_nvwujie; while(is_nvwujie!=1&&is_nvwujie!=2){ cout<<"请重新输入\n"; cin>>is_nvwujie; } if(is_nvwujie==1) { Sleep(1000); cout<<"已经解救"<<langrensha+1<<"号\n"; nvwujiu=langrensha; } is_nvwujiu=1; } Sleep(1500); if(::is_nvwudu) cout<<"你已经用过解药\n",Sleep(1500); else { cout<<"你想用毒药吗?(1想 / 2不想)\n"; Sleep(1500); int is_nvwudu=0; cin>>is_nvwudu; while(is_nvwudu!=1&&is_nvwudu!=2){ cout<<"请重新输入\n"; cin>>is_nvwudu; } if(is_nvwudu==1){ Sleep(1500); cout<<"你想毒谁?\n"; cin>>nvwudu; while(!(nvwudu>=1&&nvwudu<=player_number&&players[nvwudu].die_or_life==life)){ cout<<"请重新输入\n"; cin>>nvwudu; } nvwudu--; Sleep(1500); cout<<"已经毒死了"<<nvwudu+1<<"号\n"; } ::is_nvwudu=1; } }else{ if(players[idxnvwu].die_or_life == life){ if(!is_nvwujiu) { int is_jiu=rand()%8; if(is_jiu==0){ nvwujiu=langrensha; is_nvwujiu=1; } } if(!is_nvwudu) { int is_du=rand()%4; if(is_du==0){ int num=rand()%player_number; nvwudu=num; is_nvwudu=1; } } } } cout<<"女巫~请闭眼~~\n\n"; return nvwujiu*10000+nvwudu;//传回两个变量,“加密”操作 } int yuyanjiabixutoupiao=-1; /*预言家操作*/ void YuYanJia(){ color(green); cout<<"预言家~请睁眼~~\n"; Sleep(2000); if(players[my_number].type==yuyanjia&&players[my_number].die_or_life == life){ cout<<"请问你想查验谁的身份\n"; int p; cin>>p; while(!(p>=1&&p<=player_number)){ cout<<"请重新输入!\n"; cin>>p; } Sleep(2000); cout<<p<<"号的身份是——"; Sleep(1000); if(players[p-1].type == langren){ cout<<"狼人\n"; players[p-1].is_light = 1; }else{ cout<<"好人\n"; players[p-1].is_light = 2; } }else{ int p=-1; while(p==-1||players[p].die_or_life==die||p==idxlieren) p=rand()%player_number; if(players[p].type==langren)//锁定目标! { yuyanjiabixutoupiao=p; } } cout<<"预言家~~请闭眼~~\n"; } /*黑夜操作*/ int LANGRENSHA=-1,NVWUDU=-1,NVWUJIU=-1,SHOUWEISHOU=-1; void Night(){ LANGRENSHA=-1,NVWUDU=-1,NVWUJIU=-1,SHOUWEISHOU=-1; //如果有12人局,添加守卫 if(player_number==12){ SHOUWEISHOU=ShouWei(); Sleep(2000); } /*狼人部分*/ LANGRENSHA=LangRen(); Sleep(3500); /*女巫部分*/ int nvwu=NvWu(LANGRENSHA); NVWUDU=nvwu%10+nvwu/10%10; NVWUJIU=nvwu/10000%10+nvwu/100000%10; Sleep(3000); /*预言家部分*/ YuYanJia(); Sleep(2000); } /*猎人操作*/ void Lieren(){ int lierendai=-1; cout<<idxlieren+1<<"号是猎人\n"; players[idxlieren].is_light = 1; Sleep(1000); if(idxlieren==my_number){ cout<<"你想带走几号?\n"; cin>>lierendai; while(lierendai<1||lierendai>player_number||players[lierendai].die_or_life==die){ cout<<"请重新输入!\n"; cin>>lierendai; } lierendai--; }else{ lierendai=rand()%player_number; while(players[lierendai].die_or_life == die){ lierendai=rand()%player_number; } } Sleep(2000); cout<<"猎人选择带走"<<lierendai+1<<"号\n"; Sleep(2000); players[lierendai].die_or_life = die; } void police_die(); /*判断谁死了*/ void panduansiwang(){ system("cls"); print(); gotoxy(0,7); cout<<"________________________\n"; Sleep(3000); color(white); cout<<"天亮了\n"; Sleep(2000); gotoxy(0,9); cout<<"昨晚"; bool is_die[15]={false},is_die_lieren=false,flag=false; for(int i=0;i<player_number;i++) { if(players[i].die_or_life==life) { if(i==LANGRENSHA||i==NVWUDU) { if(players[i].type==lieren) is_die_lieren=true; players[i].killer= (i==LANGRENSHA ? langren:nvwu); players[i].die_or_life=die; is_die[i]=true; } if(i==SHOUWEISHOU||i==NVWUJIU) { if(players[i].type==lieren) is_die_lieren=false; players[i].killer=-1; players[i].die_or_life=life; is_die[i]=false; } } } bool is_police_die=false; for(int i=0;i<player_number;i++) { if(is_die[i]) { if(flag) cout<<"和"<<i+1<<"号"; else cout<<i+1<<"号",flag=true; if(i==idx_police) is_police_die=true; } } if(flag) cout<<"死了\n"; else cout<<"是平安夜\n"; if(is_die_lieren) Lieren(); if(is_police_die) police_die(); } /*选警长*/ void choose_police(){ system("cls"); print(); color(blue); gotoxy(0,7); cout<<"________________________\n"; color(yellow); cout<<"下面开始选举警长,各位不能选举自己~\n"; int tong[100]={0},cannot[100],must[100]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; memset(cannot,-1,sizeof(cannot)); CHOOSE: color(yellow); Sleep(1500); for(int i=0;i<player_number;i++) { if(players[i].die_or_life==life&&!is_include(cannot,i,player_number)) { if(i==my_number) { cout<<"你要选举几号?\n"; int n; cin>>n; while(n<1||n>player_number||n==i+1||players[n-1].die_or_life==die||!is_include(must,n-1,player_number)) { cout<<"请重新输入!\n"; cin>>n; } cout<<i+1<<"号选举"<<n--<<"号\n"; tong[n]++; } else { int n=rand()%player_number; while(n==i||players[n].die_or_life==die||!is_include(must,n,player_number)) n=rand()%player_number; cout<<i+1<<"号选举"<<n+1<<"号\n"; tong[n]++; } Sleep(1500); } } int idx_max=-1,maxn=-1,len=0; for(int i=0;i<player_number;i++) if(maxn<tong[i]) { maxn=tong[i]; idx_max=i; } int maxn_arr[15]={0}; for(int i=0;i<player_number;i++) { if(tong[i]==maxn) { maxn_arr[len++]=i; } } color(blue); if(len>1) { for(int i=0;i<len;i++) { if(i==len-1) { cout<<maxn_arr[i]+1<<"号平票\n"; } else { cout<<maxn_arr[i]+1<<"号,"; } } for(int i=0;i<len;i++) cannot[i]=maxn_arr[i]; for(int i=0;i<player_number;i++) { if(is_include(cannot,i,len)) must[i]=i; else must[i]=-1; } color(white); goto CHOOSE; } cout<<"恭喜"<<idx_max+1<<"号当选警长\n"; Sleep(3000); idx_police=idx_max; return; } /*投票*/ int toupiao(){ int tong[100]={0},cannot[100]={},must[100]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; memset(cannot,-1,sizeof(cannot)); gotoxy(0,7); color(blue); cout<<"________________________\n"; color(white); cout<<"下面进入投票环节\n"; memset(tong,0,sizeof(tong)); Sleep(2000); TOUPIAO: for(int i=0;i<player_number;i++){ if(players[i].die_or_life == life&&!is_include(cannot,i,player_number)){ if(i==my_number){ color(white); cout<<"你要投几号?\n"; int n; cin>>n; while(!(n>=1&&n<=player_number&&is_include(must,n-1,player_number))){ cout<<"请重新输入!\n"; cin>>n; } Sleep(2000); cout<<setw(2)<<my_number+1<<"号投了"<<setw(2)<<n<<"号"; if(my_number==n-1) color(red),cout<<"快来看!这有个疯子投自己!"; if(i==idx_police) color(yellow),cout<<"(警长)\n"; else cout<<"\n"; if(i==idx_police) tong[n-1]++; tong[n-1]++; }else{ color(white); int t=-1; while(t==-1 || players[t].die_or_life == die || t==i || !is_include(must,t,player_number)){ if(i==idxyuyanjia&&yuyanjiabixutoupiao!=-1) { t=yuyanjiabixutoupiao; yuyanjiabixutoupiao=-1; continue; } t=rand()%player_number; if(is_include(idxlangren,i,nlangren)) { if(players[t].type == langren) t=-1; } } cout<<setw(2)<<i+1<<"号"<<"投了"<<setw(2)<<t+1<<"号"; if(i==idx_police) cout<<"(警长2票)\n"; else cout<<"\n"; if(i==idx_police) tong[t]++; tong[t]++; } Sleep(rand()%1000+1000); } } int idx_max=-1,maxn=-1,len=0; for(int i=0;i<player_number;i++) if(maxn<tong[i]) { maxn=tong[i]; idx_max=i; } int maxn_arr[15]={0}; for(int i=0;i<player_number;i++) { if(tong[i]==maxn) { maxn_arr[len++]=i; } } color(blue); if(len>1) { for(int i=0;i<len;i++) { if(i==len-1) { cout<<maxn_arr[i]+1<<"号平票\n"; } else { cout<<maxn_arr[i]+1<<"号,"; } } for(int i=0;i<len;i++) cannot[i]=maxn_arr[i]; for(int i=0;i<player_number;i++) { if(is_include(cannot,i,len)) must[i]=i; else must[i]=-1; } color(white); goto TOUPIAO; } cout<<idx_max+1<<"号"<<"出局\n"; Sleep(4000); players[idx_max].die_or_life = die; players[idx_max].killer = good; return idx_max; } /*警长死亡*/ void police_die(){ color(yellow); int type; if(idx_police==my_number) { Sleep(1550); cout<<"你是想撕毁警徽还是移交警徽?(撕毁输入1,移交输入2)"; cin>>type; while(!(type==1||type==2)) { cout<<"请重新输入!\n"; cin>>type; } } else{ type=rand()%3+1; } if(type==1) { cout<<"警长选择撕毁警徽\n"; Sleep(1000); idx_police=-1; } else { int lucky=-1; while(lucky==-1||players[lucky].die_or_life==die) lucky=rand()%player_number; cout<<"警长选择把警徽移交给"<<lucky+1<<"号\n"; Sleep(1500); idx_police=lucky; } } /*故事的最后*/ void the_end(){ system("cls"); switch(is_end()){ case 1:cout<<"好人胜利\n\n"; break; case 2:cout<<"狼人胜利\n\n"; break; case 3:cout<<"本局平局\n\n"; break; } for(int i=0;i<player_number;i++){ cout<<i+1<<"号位:\t"; switch(players[i].type){ case nvwu: cout<<"女巫\t";break; case yuyanjia: cout<<"预言家\t";break; case cunmin: cout<<"村民\t";break; case langren:cout<<"狼人\t";break; case lieren:cout<<"猎人\t"; break; case shouwei:cout<<"守卫\t";break; } cout<<"最终"; switch(players[i].killer){ case nvwu:cout<<"被女巫毒死\n"; break; case langren:cout<<"被狼人杀死\n"; break; case good:cout<<"被投票出局\n"; break; case lieren:cout<<"被猎人带走\n";break; default :cout<<"存活\n"; } cout<<endl; } } /*主函数*/ int main(){ int wheel=0; before_game(); while(!is_end()){ //黑夜准备 something_before_everyday(); Sleep(1500); //黑夜部分 Night(); //进入黑夜! change_daytime(); //换天 //天亮了 panduansiwang();//判断谁死了 Sleep(2000); system("cls"); print(); if(is_end()) break; //选警长 if(!wheel&&player_number==12) { choose_police(); system("cls"); print(); } //投票环节 int idx_max=toupiao();//票数最多的人 int lierendai=-1; if(idx_max==idx_police){ police_die(); } if(players[idx_max].type==lieren){//启动猎人程序 Lieren(); if(is_end()) break; } system("cls"); print(); wheel++; } the_end(); system("pause"); return 0; }
-
最近活动
- 2024年8月22日CSP-J初赛模拟赛 OI
- 2024年8月16日CSP-J初赛模拟赛-补题 作业
- 历年CSP初赛真题 作业
- 2024年8月16日CSP-X初赛模拟赛2 OI
- 2024.8.4普及集训第二天(追光班) IOI
- 2024.8.3普及集训第一天(追光班) IOI
- 8月4日训练 作业
- 2024年8月2日 初赛练习(6)【小学组】 OI
- 2024年8月2日 初赛练习(6)【普及组】 OI
- 2024年7月19日 初赛练习(4)【小学组】 OI
- 2024年7月19日 初赛练习(4)【普及组】 OI
- 2024年7月12日 初赛练习(3)【小学组】-补题场 作业
- 2024年7月12日 初赛练习(3)【小学组】 OI
- 2024年7月12日 初赛练习(3)【提高组】 OI
- 2024年7月12日 初赛练习(3)【普及组】 OI
- 2024年7月5日 初赛练习(2)【普及组】 OI
- 未来之星3、4年级python水平测试 IOI
- 2024年6⽉第三场周赛-小学组 IOI
- 2024年6⽉第二场周赛-小学组 IOI
- 2024年6⽉第一场周赛-小学组 IOI
- 2024 图灵5月月赛 - 小学组 OI
- 2024年5⽉第三场周赛-小学组 IOI
- 2024年5⽉第二场周赛-小学组 IOI
- 2024.5.12 市北区市赛前集中提高训练 - 小学组 OI
- 2024图灵4月月赛 - 小学组 作业
- 2024 图灵4月月赛 - 小学组 ACM/ICPC
- 2024年5⽉第一场周赛-小学组 IOI
- 2024年4⽉第三场周赛-小学组 IOI
- 2024年4⽉第二场周赛-小学组 IOI
- 2022-2023年市北区区赛历年真题 - 小学组 IOI
- 2024年4⽉第一场周赛-小学组 OI
- 2024.3.31 图灵三月月赛 - 小学组 补题场 作业
- 图灵三月月赛 - 小学组 赛题 ACM/ICPC
- 2024.3.25 周赛补题-小学组 作业
- 2024年3⽉第三场周赛-小学组 OI
- 2024年3⽉第二场周赛-小学组 IOI
- 2024年3⽉第⼀场周赛-小学组 IOI
- 2023.4.22 青岛市图灵编程杯 周赛 IOI
-
Stat
-
Rating