不知為何,wps將pdf轉成word的時候出了問題,所以只好用了qwq
第一題意思是說把一些0轉成1或者把1轉成0,然後使得前面一部分為0,後面一部分為一,當然也可以全0或全1。這個時候也許會想到dp(當然dp也能過,不過可能會卡一卡常數)。對於這道題,我們可以用一下字首和,和字尾和。然後對於每乙個位置上的數枚舉一下,這個時候前面所提到的字首和字尾則表示的是把1變成0或者把0程式設計1所需的次數。然後在列舉的時候,把這兩個值相加的得到的值去最小即可。程式**
#include
#include
#include
#include
#include
using
namespace
std;
string s;
int a[100005],b[100005],c[100005];
int ans=0x3f3f3f3f;
int main()
對於這道題,題目意思就是把每個數字是由0~9中的哪些數字組合成的,然後計算在1~n中,這些由相同的數字組成的個數統計一下。比如說樣例:30。符合條件的有:1 11、2 22、 12 21這三種情況。明確了題意之後,我們就可以來寫程式了。首先想到的是暴力,對於1~n中的所有情況沒舉出來,然後再算一下,就像下面這個程式一樣:
#include
#include
#include
#include
#include
using
namespace
std;
string s[100005];
int ans;
int n;
int main()
for(int i=1;i<=n;i++) s[i]="0000000000";
for(int i=1;i<=n;i++)
} for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(s[i]==s[j]) ans++;
printf("%d",ans);
return
0; }
而這樣做的話,肯定是會超時的,所以可以想想優化。在這裡我想說一下本校的一位超級大佬oyyf的做法(她是在考場上想出來的,可牛x了)在**中體現。
#include
#include
#include
#include
#include
using
namespace
std;
int aa,a[5000];
int sum,n;
int main()
a[aa]++;//這裡就是把相應的方案數加1
}for(int i=1;i<=2048;i++)
if(a[i]*(a[i]-1)>0)sum+=a[i]*(a[i]-1)/2;//這個地方表示的是可以組成i這個數字的情況下有很多數字,然後每個數字相互匹配,就可以用這個了。也就是 握手啥啥啥的,聽說是初中講過?(oyyf大佬說的),其實就是排列了
printf("%d",sum);
}
這道題跟noip花匠那道題很像,只不過是多了點限制條件,然後特殊處理一下,在**中解釋。
#include
#include
#include
#include
#include
using namespace std;
int n,k,cmp=1,pos,cnt,flag;
int a[2000105],b[2000105];
inline int
read()
int main()else
}printf("%d",cmp);
}
小結:這次考試排名10(12個人),考得很不好,得多訓練訓練思維了!!! 2023年9月10日訓練總結
這一次訓練總結是9月8日到9月10日。這段時間的主要目的是參加網路賽鍛鍊自己,同時看線段樹的相關知識。不過知識還是沒看多少,大部分時間還是用在了作業上。那麼就說一下週六參加的比賽吧。週六下午的比賽是烏魯木齊的一場網路賽,題目對於dalao來說好像非常簡單,有34個隊ak了。但是對於我們來說題目依然挺...
考試(2023年3月26日) (COCI)
第一題 銀行賬戶 account 題目描述 大家都知道28定律吧,據說世界上20 的人擁有80 的財富。現在你對一家銀行的賬戶進行檢測,看是否符合28定律,或者有更強的定律。比如說,10 的人擁有85 的財富。更準確的描述是 對n個銀行賬戶進行調查,你的任務是找出兩個數a,b,使得b a的差最大。a...
2023年 3月到2023年6月
這段時間在做乙個比較大的專案,工作量很大。總結一下吧。從2014年畢業到現在有3年多了,從android轉web端也有一段時間了。轉型的這段時間可以說挺痛苦的。剛開始還以為做web挺簡單的。但是到後面才發現事實並非如此。在這段時間踩了很多坑。1 做功能的時候忘了看設計原型跟需求文件,照著設計稿畫瓢,...